3°使用using声明:在这里用using声明了 NameSpaceA::a, 它的意思是在声明以后的程序中如果出现 未指明命名空间的a,就使用NameSpaceA命名空间里的a 如果要使用NameSpaceB命名空间中的a,则仍需要使用这样的方式 NameSpaceB::a; using NameSpaceA::a; a = 20; // 使用命名空间NameSpaceA中的a NameSpaceB::a = 30; // 使用命名空间NameSpaceB中的a using 声明不仅可以针对命名空间中的变量或者函数,还可以对整个命名空间进行声明 这样的方式声明命名空间以后,在后面使用未指定具体命名空间的变量或者函数产生命名冲突的时候 默认使用 NameSpaceB中的变量和函数 using namespace NameSpaceB; a = 10; printf ("%d\n", NameSpaceB::a);
4°c++标准库和std命名空间: C++ 引入了命名空间的概念,计划重新编写库,将类、函数、宏等都统一纳入一个命名空间,这个命名空间的名字就是std。std 是 standard 的缩写,意思是“标准命名空间”,可以发现,对于不带.h的头文件,所有的符号都位于命名空间 std 中,使用时需要声明命名空间 std;对于带.h的头文件,没有使用任何命名空间,所有符号都位于全局作用域。这也是 C++ 标准所规定的。