C 中的 namespace 使用和注意事項

2021-10-05 13:07:54 字數 986 閱讀 7479

在上篇文章中提到了 c++ 中的 namespace,出現了一些奇怪的現象,這裡我們以三段程式引出我們要討論的問題。

**段1:

為了避免命名空間中的變數和當前作用域中的變數同名發生衝突,我們一般會這樣使用命名空間:

#include #include using namespace std;

namespace first

int main()

int main()

int main()

int main()

}int main()

int a = 30;

int main()

int a = 30;

int main()

int a = 30;

int main()

int main()

int main()

int main()

using namespace __unique_name_;

從而直接將匿名空間的內容引入到了 」global「 當中。

多個匿名命名空間同時存在也是可以的:

#include #include using namespace std;

namespace

namespace

int main()

{ cout《結果為:

1020

同時匿名命名空間在不同的檔案中經過編譯的 __unique_name_ 都是不同的。在編譯階段避免了命名同名的問題,也就可以解決鏈結階段不同編譯檔案的命名同名問題。

在跨檔案使用 namespace 和協同開發中,c++ 對 namespace 做出了規定:

可以使用下邊的形式為現有的命名空間新增新的別名,有點類似引用:

namespace new_name = current_name;

C 中namespace的使用

c 中經常會使用到namespace關鍵字,那麼到底什麼是namespace呢?它有什麼用呢?namespace直譯就是命名空間的意思,它是一種邏輯分組機制,將按照某些標準在邏輯上屬於同乙個任務的所有類宣告放在同乙個命名空間。最常用到的using namespace std就是在標準c 中所有包含的...

C 中的using和namespace用法

using 第一,引用程式集 即namespace 1 using system 宣告了程式中用到的乙個命名空間 system 我們可以不需要申明這個空間名稱就能直接使用這個空間裡面的類了。console.writeline hello 2 using io system.io 給命名空間 syst...

C 中namespace和class的區別

class和namespace都是命名空間 但是class是封閉的,也就是class只能有乙個標頭檔案 namespace是開放的,特可以在多個檔案裡向同乙個namespace裡面新增東西,例如stl裡面的東西都在名字空間std裡面,但卻定義在了多個檔案裡面。class做命名空間時,與namespa...