C 命名空間

2022-09-25 23:42:12 字數 2092 閱讀 3652

目錄

namespace 名字空間的名字

對於乙個較大型的c++程式來說,需要由多個程式設計師相互協作編寫,這樣的情況下容易出現不同程式設計師在需要負責的程式部分使用相同名字的變數或函式,導致程式合併後出現問題。名字空間的作用,就是將不同程式設計師編譯的程式放入相應的名字空間,每個名字空間相對獨立,空間內的變數和函式名只侷限於當前空間下,從而解決命名衝突的問題。

(1)作用域限定符 名字空間名::識別符號

表示明確訪問是特定名字空間中的特定識別符號

最麻煩(2)名字空間指令

using namespace 名字空間名;

該語句可以在任何地方

表示在該指令之後,對指令所指的名字空間中所有識別符號對當前作用域都可見

接下來都可以直接訪問名字空間中的識別符號,不需要加"名字空間名::"

當然也可以加

*對當前作用域可見

(3)名字空間宣告

using 名字空間::識別符號

將指定名字空間中的某個識別符號(成員)引入到當前作用域,可以直接訪問

*匯入到當前作用域

#include

using namespace std;

//定義名字空間

namespace wd1

struct stu;

}int main();

using namespace wd1;

cout << g << endl;

func();

struct stu s2 = {};

return 0;

} /*using wd1::g;

cout << g 程式設計客棧lt; endl;

和 cout << wd1::g << endl;

就只是其中的兩種定義方法,兩個是等價的*/

編譯器為沒有指明名字空間的全域性區的識別符號置於匿名名字空間中

如果要指明訪問匿名名字空間中的識別符號 直接用 ::識別符號

匿名的命名空間是c++的特性,相對於c的static宣告來說,

可以在匿名的空間裡面宣告很多

變數和函式,這樣可以省去了對每個變數和函式新增stamihtxjvctic宣告.

實質上匿名空間的功能跟static宣告是一樣的

#include

using namespace std;

//如果乙個全域性的識別符號沒有指定名字空間,編譯器將會為其預設地置於匿名名字空間中

int ** = 1024;

int main()

名字空間合併

乙個程式中,如果名字空間名字相同,則認為是同乙個名字空間

裡面的識別符號會進行合併

#include

using namespace std;

namespace myspace

}namespace myspace

}int main()

乙個名字空間包含另外乙個名字空間

不能直接 using namespwww.cppcns.comace 裡層名字空間; 對於當前作用域而言是不可見

#include

using namespace std;

//int x = 1;

namespace s1

} namespace s4

}int main()

using namespace 外層名字空間;

using namespace 裡層名字空間;

using namespace 外層名字空間::裡層名字空間;

注意:如果用using namespace 名字空間;進行名字空間宣告當前作用域可見

如果不同的兩個作用域中含有相同名字和識別符號,不訪問沒問題

但是如果用直接訪問,則會產生歧義

using namespace 名字空間; 進行宣告不會有歧義

using 名字空間名::識別符號 可能會有歧義

舉個例子來說明

#include

using namespace std;

namespace s1

namespace s2

int main()

本文標題: c++ 命名空間--namespace總結

本文位址:

spring p命名空間 c命名空間

p命名空間 1.需要引入命名空間p 並不真實存在 是在spring內部中實現的 xmlns p 2.如果是引用注入需要加 ref字尾 p和c命名空間 並不適用於集合引數 c命名空間 1.需要引入命名空間c 並不真實存在 是在spring內部中實現的 xmlns c 2.可以使用c 引數名 或c 引數...

C 命名空間 預設命名空間與匿名命名空間

2.匿名命名空間 預設命名空間也叫全域性命名空間,所有沒有置於某一具體命名空間下的 即在預設命名空間下,例如func main 函式。include void func void intmain int argc,char ar void func void 需要注意的是 這個就是類似於c語言裡簡單...

C 命名空間,也有叫命名空間

在c 中,名稱 name 可以是符號常量 變數 巨集 函式 結構 列舉 類和物件等等。為了避免在大規模程式設計中,以及在程式設計師使用各種各樣的c 庫時,這些識別符號的命名發生衝突,標準c 引入了關鍵字namespace 命名空間 名字空間 命名空間 名域 可以更好地控制識別符號的作用域。std是c...