1. 命名空间
- 用于解决命名冲突的问题
- 里面可以放函数、变量、结构体、类
- 可以嵌套
- 必须定义在全局作用域下
- 是开放的,可以随时往原先的命名空间中追加内容,而不是覆盖
- 实现命名空间下的函数和调用时,需要使用作用域运算符xxx::
- 也可以使用无名/匿名命名空间,相当于和static一样是静态元素,也就是说只能在当前文件中使用
- 可以起别名:namespace ns2 = ns1;然后就可以使用ns2了
- 和头文件、源文件的对比
- 命名空间是逻辑组织。使用using namespace xxx进行引用
- 头文件和源文件,是物理组织。使用#include "xxx.h"进行引用