跳轉到內容

C++ 程式設計

來自 Wikibooks,開放世界中的開放書籍

名稱空間關鍵字允許你建立一個新的作用域。名稱是可選的,可以省略以建立一個匿名名稱空間。建立了名稱空間後,你必須顯式地引用它或使用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;

華夏公益教科書