寒假学习笔记(2)
2018.2.8
命名空间 namespace
- namespace 空间名{};
- 防止标识符名称冲突,将逻辑上相关的标识符置于同一命名空间中;
- 三种引用方式:
- 作用域运算符:命名空间名:: 成员名;
- using指令:using namespace 空间名;
- using声明:using 命名空间名:: 成员名;
- 命名空间内可以嵌套定义子命名空间,但不能在命名空间内声明子命名空间而在外部定义;
- 命名空间必须定义在头文件中,而不能作为一个应用程序来运行;
- C++标准程序库中的所有标识符都被定义于一个名为std的namespace中;
动态内存分配
- 申请动态内存
- 申请一个变量:new <类型名>(初始值);
- 申请变量数组:new <类型名>[常量表达式];
- 如果申请成功返回内存地;
- 申请失败返回空指针null;
- 释放内存空间
- 删除一个变量:delete <指针名>;
- 删除变量数组:delete []<指针名>;
- 动态分配和静态分配内存的一些区别;
- 静态分配在栈上,而动态分配在堆上,后者一般能申请比前者大的多的内存。
- 前者由程序决定释放而后者不行,系统资源的有效利用;
至此开始正式的面向对象程序设计学习;