C 學習筆記 三十六 命名空間

2021-10-23 20:11:28 字數 1544 閱讀 5653

在 c++ 應用程式中。例如,您可能會寫乙個名為 xyz() 的函式,在另乙個可用的庫中也存在乙個相同的函式 xyz()。這樣,編譯器就無法判斷您所使用的是哪乙個 xyz() 函式。

因此,引入了命名空間這個概念,專門用於解決上面的問題,它可作為附加資訊來區分不同庫中相同名稱的函式、類、變數等。使用了命名空間即定義了上下文。本質上,命名空間就是定義了乙個範圍。

namespace namespace_name 

//呼叫

name::code;

// code 可以是變數或函式

使用示例:

#include

using

namespace std;

// 第乙個命名空間

namespace first_space

}// 第二個命名空間

namespace second_space

}int main (

)

您可以使用 using namespace 指令,這樣在使用命名空間時就可以不用在前面加上命名空間的名稱。這個指令會告訴編譯器,後續的**將使用指定的命名空間中的名稱。

例如使用using namespace std;,在後續程式中使用cout << "inside first_space" << endl;或者cin>>a;,不再需要加上std::cout.

using 指令也可以用來指定命名空間中的特定專案。例如,如果您只打算使用 std 命名空間中的 cout 部分,您可以使用如下的語句:using std::cout;,這樣在使用cout時就可以不再加std,但是使用std命名空間內的其他函式或變數仍然需要使用std字首。

using 指令引入的名稱遵循正常的範圍規則。名稱從使用 using 指令開始是可見的,直到該範圍結束。此時,在範圍以外定義的同名實體是隱藏的。

命名空間可以定義在幾個不同的部分中,因此命名空間是由幾個單獨定義的部分組成的。乙個命名空間的各個組成部分可以分散在多個檔案中。

所以,如果命名空間中的某個組成部分需要請求定義在另乙個檔案中的名稱,則仍然需要宣告該名稱。下面的命名空間定義可以是定義乙個新的命名空間,也可以是為已有的命名空間增加新的元素:

namespace namespace_name
namespace namespace_name1 

}

使用:

// 訪問 namespace_name2 中的成員

using

namespace namespace_name1::namespace_name2;

// 訪問 namespace:name1 中的成員,那麼在該範圍內 namespace_name2 中的元素也是可用的

using

namespace namespace_name1;

C 入門十六 命名空間

命名空間namespace 也可以成為命名空間,名字空間 當開發大型軟體時由多名程式設計師共同開發,會使用大量的變數和函式,不可避免的會出現變數或者命名衝突,為了解決合作開發時的命名衝突問題 例子 小紅和小明都參與了乙個檔案管理系統的開發,它們都定義了乙個全域性變數fp,用來指明當前開啟的檔案,將它...

C 學習筆記 命名空間

命名空間或者叫名字空間 名字就是namespace 是為了在大型專案中防止識別符號衝突才引入的,實際上就是可以由使用者命名的作用域。touzani的專欄的這篇c 命名空間namespace,我覺得寫的很明白 不敢說好壞,因為我也是抱著學習的態度讀技術部落格 該部分大量參考了這篇博文。原來c 識別符號...

C 命名空間學習筆記

三個重要概念 宣告區域 可以在其中進行宣告 變數 函式等 的區域。潛在作用區域 從宣告點開始,至其宣告區域的結尾。作用域 變數對程式而言的可見的範圍。舉個例子 函式中的某個變數可能會被這個函式中的某個 塊中的同名變數隱藏。作用 乙個命名空間中的名稱不會與另乙個命名空間中的相同名稱發生衝突,同時允許程...