C++中的命名空间

命名空间可以用来避免命名冲突
Java考=靠不同目录的文件夹区别命名空间,C++不行,全部编译,发现有重复的就报错
下面是C#里的命名空间,新建一个类就会有命名空间
C++中的命名空间
而在C++里默认是全局的命名空间:using namespace std;
C++中的命名空间
加上命名空间
C++中的命名空间

C++中的命名空间
如果只是使用自定义空间里的一个变量 可以使用 using 空间名::变量,这样以后就可以直接使用变量名

解决下面的问题要在person p1 前加上命名空间,不能用std::person p1,因为std里只包含一些函数,这是我们自定义的函数,并没有包含。
C++中的命名空间

命名空间不影响内存布局,全局变量放到命名空间内还是全局变量

命名空间的嵌套

C++中的命名空间
有个默认的全局命名空间,我们创建的命名空间默认都嵌套在它里面
C++中的命名空间
C++中的命名空间

命名空间的合并

相同的命名空间下的东西会自动合并
声明和实现分离也要一起使用命名空间
C++中的命名空间