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都没有引入到本空间)  ...}(有些名字空间没有名字。这种没命名的名字空间一般用于限制名字空间内部元素的可见性)