共用方式為


命名空間宣告

A 命名空間識別宣告,並將唯一的名稱指派給使用者宣告的命名空間。

namespace identifier

備註

這種命名空間用來解決大型的程式和文件庫中的名稱衝突的問題。 程式設計人員可以使用命名空間來開發新的軟體元件和程式庫,而不會與現有元件造成命名衝突。

例如:

// namespace_declaration1.cpp
namespace X
{
   int i;
   double j;
}
int main()
{
   X::i++;
}

如需命名空間定義的語法如下:

namespace identifier
{
   [ declaration-list ]
}

A 命名空間定義 可以巢狀結構內另 命名空間定義。 每個命名空間定義 必須出現在檔案範圍,或立即在另一個 命名空間定義

例如:

// namespace_declaration2.cpp
// C2870 expected
namespace A
{
   int j = 3;
   int f(int k);
}

namespace Outer
{
   int n = 6;
   int func(int num);

   namespace Inner
   {
      float f = 9.993;
   }
}

int main()
{
   namespace local   // C2870: not at global scope
   {
   }
}

與宣告式的其他區域,不同的命名空間定義可分割的單一轉譯單元幾個部分。

// namespace_declaration3.cpp
namespace A
{
   // declare namespace A variables
   int i;
   int j;
}

namespace B
{
}

namespace A
{
   // declare namespace A functions
   void func(void);
   int int_func(int i);
}

int main()
{
}

如果命名空間以這種方式後, 又繼續其初始的定義,都稱為接續擴充命名空間定義。 原始的定義,該命名空間的就所謂的原始的命名空間定義

這種標記法的使用方式可能更長的名稱或大型程式中很麻煩。 Using 宣告using 指示詞,以及 命名空間別名提供一個非常簡單的方法,來參考命名空間成員。

A 命名空間宣告,它牽涉到新的命名空間、 未命名的命名空間或擴充的命名空間定義中,是否必須伴隨著大括號括住的命名空間主體。 此陳述式

namespace X;

是語法錯誤。 此陳述式

namespace X{};

不是有語法錯誤,但並沒有任何意義。

如需更多資訊,請參閱命名空間

宣告式中使用的區域中,原始的命名空間定義中的識別項必須是唯一的。 識別項是命名空間的名稱,以及用來參考它的成員。

宣告式的命名空間定義區域,是以其主體。 主體必須括在大括弧之中 ({}),而且可能包含宣告或定義的變數、 函式、 物件、 範本和巢狀命名空間。 在宣告宣告清單可以說是命名空間的成員。 每個命名空間成員的名稱會自動限定它的命名空間的名稱和範圍解析運算子

請參閱

參考

命名空間 (C++)

C + + 關鍵字

未命名的命名空間