C++ 命名空間

我就是喜歡簡簡單單的表達。


使用命名空間的目的是對標識符的名稱進行本地化,以避免命名衝突。

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;
}

wKioL1XKtrSgBqbLAAANbycwQao995.jpg

總結:一個命名一個空間,內容隨意重複互補干擾。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章