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都沒有引入到本空間) ...}(有些名字空間沒有名字。這種沒命名的名字空間一般用於限制名字空間內部元素的可見性)