全國咨詢/投訴熱線:400-618-4000

C++ namespace用法詳細介紹[C++培訓]

更新時間:2020年03月31日17時14分 來源:傳智播客 瀏覽次數:

編寫程序過程中,名稱(name)可以是符號常量、變量、函數、結構、枚舉、類和對象等等。工程越大,名稱互相沖突性的可能性越大。另外使用多個廠商的類庫時,也可能導致名稱沖突。為了避免,在大規模程序的設計中,以及在程序員使用各種各樣的 C++ 庫時,這些標識符的命名發生沖突,標準 C++ 引入關鍵字 namespace(命名空間/名字空間/名稱空間),可以更好地控制標識符的作用域。推薦了解傳智播客C++工程師培訓課程。

例如,我們在 C 語言中,通過 static 可以限制名字只在當前編譯單元內可見,在 C++ 中我們通過 namespace 來控制對名字的訪問。

1. namespace 語法

1. namespace 中可定義常量、變量、函數、結構體、枚舉、類等

2. namespace 只能在全局定義。

3. namespace 支持嵌套定義。

4. namespace 是開放的,可隨時添加新的成員。

5. namespace 關鍵字可以為已有空間名字增加別名

6. 無名命名空間意味著命名空間中的符號只能在本文件中訪問,相當于給符號增加了 static 修飾。推薦了解

1.1 namespace 可包含的成員

1585623921298_namespace01.jpg

1.2 namespace 只能在全局定義

1585623931907_namespace02.jpg

1.3 namespace 支持嵌套定義

1585623942858_namespace03.jpg

名字空間 my_space 中可以嵌套定義子名字空間 my_sub_space.

1.4 namespace 是開放的,隨時可添加成員

1585623963003_namespace04.jpg

1.5 namespace 為已有空間名字創建別名

1585623975814_namespace05.jpg

1.6 namespace 匿名名字空間

無名命名空間意味著命名空間中的符號只能在本文件中訪問,相當于給符號增加了 static 修飾,只能在當前文件內訪問。

1585623987342_namespace06.jpg


2. 使用 namespace 中符號

使用名字空間中定義的符號有三種方式:

1. 直接通過 namespace 作用域訪問

2. using 聲明指定某個符號在某個作用域下可見

3. using 編譯指令指定名字空間中所有符號在在某個作用域下可見

2.1 直接訪問

1585624001618_namespace07.jpg


2.2 using 聲明

using 聲明指定某個符號在某個作用域下可見。例如:

1585624015664_namespace07.5.jpg

2.3 using 編譯指令

using 編譯指令指定名字空間中所有符號在在某個作用域下可見。

1585624026459_namespace08.jpg


猜你喜歡
C與C++的枚舉的不同
C語言二維數組的定義和引用
C/C++函數指針簡單講解
C++中指針和應用有哪些區別?

人妻系列无码专区_漂亮人妻被中出中文字幕_人妻中文制服巨乳中文