C 之命名空間

2021-07-31 11:58:23 字數 1016 閱讀 3422

一:命名空間的定義與簡介:

命名空間是ansi c++引入的可以由使用者命名的作用域,用來處理程式中常見的命名衝突。例如有兩個標頭檔案中都定義了student類,那麼在主程式中都包含這兩個標頭檔案時,使用student類便會編譯出錯。或者在程式中引入不同的庫時有相同的實體名,則在編譯時就會出現名字衝突。或者庫中含有與程式的全域性變數同名的實體。有人稱之為全域性命名空間汙染。

為解決這個問題,ansi c++增加了命名空間,實際上是乙個由程式設計者命名的記憶體區域,程式設計者根據需要指定一些有名字的空間域,把一些全域性實體分別放在各個命名空間中。從而與其他全域性實體分隔開。如:

namespace s

namespace 是關鍵字,s是指定的命名空間名。在其中宣告的實體被稱為命名空間成員。使用時 :

s::a;

注意與類宣告的區別,花括號後面沒有分號。

二:使用命名空間成員的方法:

1,使用命名空間別名:

例如:namespace  playground

namespace   ssr=playground;//此時ssr就相當於playground的引用。

2.使用「using 命名空間成員名」

例如:using s::student;

則在using所在的作用域中用s中的student成員時,不需要用逐個用命名空間限定。

3.使用「using namespace 命名空間名「

例如:using namespace s;

則在本作用域中用到命名空間s中的所有成員時,都不需要再用命名空間去限定。

三:無名的命名空間:

例如:namespace 

{void fun()

{cout<<"ok"《因為命名空間沒有名字,在其它檔案中顯然無法引用,它只在本檔案的作用域中有效。

在本程式中的其他檔案中也不能使用fun函式,fun函式作用域只能是本檔案。

四:標準命名空間std

標準c++庫的所有識別符號都是在乙個名為std的命名空間中定義的。

using namespace std;

C 之命名空間

c中是沒有命名空間這個概念的,是c 中新引入的乙個東西,為了處理同名的衝突。其實命名空間就是封裝的乙個概念。把一些變數 函式 類給封裝起來。和類的封裝概念很像,但是比類的封裝要大。一 1.自定義定義命名空間 格式 namespacename namespace my 此 的目的就是想往命名空間std...

c 之命名空間

c語言中所有變數都有自己的作用域,宣告變數的型別不同,其作用域也不同。c語言中的變數,按照作用域的範圍可分為兩種,即區域性變數和全域性變數,所對應的作用域為區域性作用域和全域性作用域。簡單來說 區域性作用域是指 在函式內作定義說明的。其作用域僅限於函式內,離開該函式後再使用這種變數是非法的。全域性作...

C 之命名空間

命名空間是隨著標準c 而引入的,它相當於乙個更加靈活的檔案域 全域性域 可以用花括號將檔案的一部分括起來,並以關鍵字namespace開頭,給它起乙個名字,這段區域即為命名空間域。命名空間可巢狀使用。namespace name1 namespace name2 name1 a 3 name2 a ...