namespace名字空間

2021-10-05 09:59:52 字數 1606 閱讀 5406

考慮一種情況,當我們有兩個同名的人,zara,在同乙個班裡。當我們需要對它們進行區分我們必須使用一些額外的資訊和它們的名字,比如這個區域,如果它們生活在不同的區域或者它們的母親或父親的名字,等等。

在您的c++應用程式中也會出現同樣的情況。例如,您可能正在編寫一些具有名為xyz()函式的**,並且還有另乙個可用的庫,它也具有相同的xyz()函式。現在編譯器無法知道您在**中引用的xyz()函式的哪個版本。

命名空間(namespace)被設計來克服這個困難,並被用作額外的資訊來區分類似的函式、類、變數等等,它們在不同的庫中具有相同的名稱。使用命名空間,您可以定義定義名稱的上下文。本質上,命名空間定義了乙個範圍。

在c語言中只有乙個全域性作用域:

1.c語言中所有的全域性識別符號共享乙個作用域

2.識別符號之間可能發生衝突

c++中提出了命名空間的概念:

1.命名空間將全域性作用域分成不同的部分,

2.不同命名空間中的識別符號可以同名而不會發生衝突

3.命名空間可以發生巢狀

4.全域性作用域也叫預設命名空間

名字空間的定義:

namespace name
c++命名空間的使用:

使用整個命名空間:using namespace name;

使用命名空間中的變數:using name::variable;   //variable可以是任意資料型別

使用命名空間中的變數:  name::variable      //只在小範圍使用

注意:

namespace後面必須接名字空間名,eg. using namespace name1::name2;

如果後面延申到了乙個具體的資料型別,則必須省略namespace, eg. using name1::name2::variable;

example:

#include #include namespace first 

namespace second

;    }} 

int main(); 

printf("p.x = %d\n", p.x);

printf("p.y = %d\n", p.y);

system("pause");

return 0;

}

該指令告訴編譯器後續**正在使用指定命名空間中的名稱

example:

#include using namespace std;

// first name space

namespace first_space } 

// second name space

namespace second_space } 

using namespace first_space;

int main ()

namespace 名字空間

namespace 中文意思是命名空間或者叫名字空間,傳統的 c 只有乙個全域性的 namespace 但是由於現在的程式的規模越來越大,程式的分工越來越細,全域性作用域變得越來越擁擠,每個人都可能使用相同的名字來實現不同的庫,於是程式設計師在合併程式的時候就會可能出現名字的衝突。namespace...

namespace名字空間小解

一 標準名字空間的理解 using namespace std 就是標準名字空間的引用,std是c 標準庫中的名字空間名稱。大家都知道,當我們定義了乙個類,而宣告物件的時候就要用到 class name 後跟物件名稱,標準名字空間也是這個用法。其實,我們可以按照乙個更為抽象包含更廣的類來理解標準名字...

HDFS名字空間(NameSpace)

目標 掌握什麼是 名字空間 hdfs 支援傳統的層次型檔案組織結構。使用者或者應用程式可以建立目錄,然後將檔案儲存在這些目錄裡。檔案系統名字空間的層次結構和大多數現有的檔案系統類似 使用者可以建立 刪除 移動或重新命名檔案。namenode 負責維護檔案系統的名字空間,任何對檔案系統名字空間或屬性的...