名前空間宣言
名前空間 の宣言はユーザーが宣言した名前空間に一意の名前を指定し割り当てることができます。
namespace identifier
解説
このような名前空間が大きなプログラムとライブラリの名前の衝突の問題解決に使用されます。プログラマは既存のコンポーネントとの名前の競合が発生することで新しいソフトウェアのコンポーネントおよびライブラリを開発するには名前空間を使用できます。
次に例を示します。
// namespace_declaration1.cpp
namespace X
{
int i;
double j;
}
int main()
{
X::i++;
}
名前空間定義の構文は次のとおりです :
namespace identifier
{
[ declaration-list ]
}
名前空間定義は 他の 名前空間定義 に入れ子にすることができます。すべての 名前空間定義は ファイル スコープまたは他の 名前空間定義 で囲みます。
次に例を示します。
// 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()
{
}
名前空間は最初の後に継続この場合のように 拡張機能の名前空間定義と 呼ばれます。その名前空間の元の定義は 定義元の名前空間 と呼ばれます。
この表記を使用すると長い名前が大きなプログラムが面倒な場合があります。宣言を使用しますディレクティブを使用する と 名前空間エイリアス は名前空間のメンバーを参照する簡単な方法を提供します。
新しい名前空間無名の名前空間拡張名前空間定義を含めるかどうか 名前空間 の宣言は中かっこで囲まれた名前空間の本体とともに伴われなければ必要があります。ステートメント
namespace X;
構文エラーです。ステートメント
namespace X{};
構文エラーはありませんが無意味です。
詳細については名前空間 を参照してください。
元の名前空間定義の識別子が使用する宣言領域で一意である必要があります。識別子は名前空間の名前でメンバーを参照するために使用されます。
名前空間定義の宣言領域は本体です。は中かっこ () で囲む必要があります。変数関数オブジェクトテンプレートおよび入れ子になった名前空間の宣言または定義が含まれる場合があります。 宣言リスト の宣言は名前空間のメンバーであると呼ばれます。各名前空間のメンバーの名前は名前空間と スコープ解決演算子 の名前によって自動的に変更されます。