我就是喜歡簡簡單單的表達。
使用命名空間的目的是對標識符的名稱進行本地化,以避免命名衝突。
Namespace 關鍵字的出現就是針對這種問題的。由於這種機制對於聲明於其中的名稱都進行了本地化,就使得相同的名稱可以在不同的上下文中使用,而不會引起名稱的衝突。我們也可以在自己的程序中創建自己的命名空間,這樣可以對我們認爲可能導致衝突的名稱進行本地化。這點在我們創建類或者是函數庫的時候是特別重要的。
命名空間基礎
namespace 關鍵字使得我們可以通過創建作用範圍來對全局命名空間進行分隔。本質上來講,一個命名空間就定義了一個範圍。定義命名空間的基本形式如下:
namespace 名稱{//聲明}
在命名空間中定義的任何東西都侷限於該命名空間內。
using關鍵字
如果在程序中需要多次引用某個命名空間的成員,那麼按照之前的說法,我們每次都要使用範圍解析符來指定該命名空間,這是一件很麻煩的事情。爲了解決這個問題,人們引入了using關鍵字。using語句通常有兩種使用方式:
using namespace 命名空間名稱;
using 命名空間名稱::成員;
以上轉載http://blog.chinaunix.net/uid-26874138-id-3215266.html
=============================================================================
文件:class.h
#ifndef __CLASS_H__ #define __CLASS_H__ #include <iostream> using namespace std; namespace Class{ class construction{ public: int func(); }; int construction :: func(void) { cout << "Hi~\n"; return 0; } } namespace Class2{ class construction{ public: int func(void); }; int construction :: func(void) { cout << "Hi2~\n"; return 0; } } #endif /* __CLASS_H__ */
文件名:construction.cxx
#include "class.h" int main(void) { Class :: construction con; Class2 :: construction con2; con.func(); con2.func(); return 0; }
總結:一個命名一個空間,內容隨意重複互補干擾。