《C++高级编程》读书笔记(一)
来源:互联网 发布:云狐网络 编辑:程序博客网 时间:2024/05/14 23:35
这是我读《C++高级编程(第2版)》做的读书笔记,首先从C++最基本的语法开始。
名称空间
名称空间是用来处理不同代码段之间的名称冲突问题。假如你决定使用第三方库,其中也有一个foo()函数,编译器无法判断出你的代码要使用哪个版本的foo()函数,库函数的名称无法改变,而改变自己的函数名称又会非常痛苦,在此情况下可以使用名称空间,从而指定定义名称的环境,如:
namespace mycode{ void foo();}
将你的foo()函数放到名称空间mycode 后,这个函数就与第三方提供的函数区分开来。
为了调用名称空间的foo()函数需要使用::在名称空间之前给出名称空间,::被称作作用域解析运算符:
mycode::foo();
也可以在源文件只能中使用
using namespace mycode;
堆栈和堆
C++程序中的内存分为两个部分——堆栈和堆。
堆栈就像一副扑克牌,当前顶部的牌代表程序当前的作用域,通常是当前正在执行的函数,当前函数中声明的所有变量将占有顶部的堆栈帧的内存。编译器在编译时必须能够判断每个堆栈帧的大小,这是由堆栈的运行方式决定的。由于堆栈帧的大小被预先确定,因此不能声明大小可变的数组。
数组必须这样声明:
int myarray[8];
堆是与当前函数或堆栈帧完全没有关系的内存区域。如果想要在函数调用结束之后依然保存声明的变量,可以将变量放到堆中。
动态数组必须这样声明:
int arraysize =8;int * myarray=new int[arraysize];delete [] myarray;
0 0
- Unix环境高级编程读书笔记(一)
- VC++网络高级编程读书笔记 (一)
- 高级IO(一)--UNIX环境高级编程读书笔记
- Javascript高级编程读书笔记一
- Objective-C高级编程 iOS与OS X多线程和内存管理 读书笔记(一)
- UNIX环境高级编程-读书笔记-网络编程(一)
- 文件io(一)--unix环境高级编程读书笔记
- linux进程控制(一)--unix环境高级编程读书笔记
- linux信号(一)--unix环境高级编程读书笔记
- 【读书笔记】《Android多媒体开发高级编程》(一)
- UNIX环境高级编程-读书笔记-文件操作(一)
- Unix环境高级编程 读书笔记一
- JS高级程序编程读书笔记:一.基本概念
- Android传感器高级编程之读书笔记一
- 【读书笔记】Objective-C高级编程--GCD概要
- 【读书笔记】Objective-C高级编程--Block概要
- 《Objective-C 高级编程》读书笔记之 ARC
- 《Objective-C 高级编程》读书笔记之 Blocks
- OCP-1Z0-053-V12.02-257题
- Linux下MySQL的安装(转载)
- 【已解决】android.view.WindowManager$BadTokenException: Unable to add window
- Uiautomator Api浅析
- Eclipse打JAR包,插件FatJar安装与使用
- 《C++高级编程》读书笔记(一)
- av_opt_set_int_list 学习笔记
- List(暂存)
- ubuntu下卸载mysql(转载)
- java去哪儿笔试解决方案四
- 根据一组点拟合曲线(需要opencv库)
- Linux下的logrotate
- 5px的空隙
- Android自定义圆形图片