1. C++中采用的是单一的全局变量命名空间
2.用户于是可以通过三种方法来访问这一名字空间里的符号:将名字空间中的所有符号全部引入到某一用户空间;将部分符号引入到某一用户空间;或通过修饰符显式地一次性使用某个符号
3.例子
namespace sdm { const double book_version = 2.0; class handle { ... }; handle& gethandle();}]
void f1(){ using namespace sdm; (使得sdm中的所有符号不用加修饰符就可以使用) cout << book_version;(解释为sdm::book_version) ... handle h = gethandle();(handle解释为sdm::handle,gethandle解释为sdm::gethandle) ...}
void f2(){ using sdm::book_version; (使得仅book_version不用加修饰符就可以使用) cout << book_version;(解释为sdm::book_version) ... handle h = gethandle();(错误! handle和gethandle都没有引入到本空间) ...}
void f3(){ cout << sdm::book_version; (使得book_version在本语句有效) ...double d = book_version;(错误! book_version不在本空间) handle h = gethandle();(错误! handle和gethandle都没有引入到本空间) ...}(有些名字空间没有名字。这种没命名的名字空间一般用于限制名字空间内部元素的可见性)
转载于:https://blog.51cto.com/yebaoshan/1629617