C++ 程式設計
外觀
名稱空間關鍵字允許你建立一個新的作用域。名稱是可選的,可以省略以建立一個匿名名稱空間。建立了名稱空間後,你必須顯式地引用它或使用using關鍵字。名稱空間用名稱空間塊定義。
- 語法
namespace name {
declaration-list;
}
在許多程式語言中,名稱空間是識別符號的上下文。C++ 可以處理語言中的多個名稱空間。透過使用名稱空間(或using namespace關鍵字),它提供了一種乾淨的方式將程式碼聚合到一個共享的標籤下,以防止命名衝突或僅僅為了便於回憶和使用非常特定的範圍。除了“名稱空間”之外還有其他“名稱空間”;這可能令人困惑。
名稱空間(注意這裡有空格),正如我們將看到的,它超越了作用域的概念,提供了一種簡便的方法來區分正在呼叫/使用的內容。正如我們將看到的,類也是名稱空間,但它們不是名稱空間。
- 示例
namespace foo {
int bar;
}
在這個塊中,識別符號可以使用宣告的完全相同的方式。在這個塊之外,必須新增名稱空間說明符(即,它必須被限定)。例如,在名稱空間 foo之外,bar必須寫成foo::bar。
C++ 包含另一個構造,它使得這種冗長不再需要。透過在程式碼中新增一行using namespace foo;,不再需要字首foo::。
沒有名稱的名稱空間稱為匿名名稱空間。對於這樣的名稱空間,將為每個翻譯單元生成一個唯一的名稱。無法將using關鍵字應用於匿名名稱空間,因此匿名名稱空間的行為就好像已經將using關鍵字應用於它一樣。
- 語法
namespace {
declaration-list;
}
你可以為名稱空間(包括巢狀名稱空間)建立新名稱(別名)。
- 語法
namespace identifier = namespace-specifier;