Using 指令
C++ の名前空間:インデックス への移動
名前空間の複数またはすべてのメンバを使う場合、C++ では完全な名前空間に簡単にアクセスする方法が用意されています。using 指令では、名前空間内のすべての識別子が、using 指令文が作成された時点でスコープ内に指定されます。using 指令の構文は次のとおりです。
using 指令:
using namespace ::(オプション)ネストした名前指定子(オプション)名前空間の名前;
using 指令の影響は推移します。それ自体に using 指令を含む名前空間に using 指令を適用すると、これらの名前空間にも同様にアクセスできます。たとえば、次のようなユーザーのプログラムに using 指令を適用した場合は、名前空間の qux、foo、および bar にもアクセスできます。
namespace qux { using namespace foo; // This has been defined previously using namespace bar; // This also has been defined previously }
using 指令では、識別子はローカル スコープに付加されません。したがって、複数の名前空間に定義された識別子は、それを実際に使用しない限り問題にはなりません。他の同様なすべての宣言が隠され、ローカル スコープ宣言が優先されます。
警告: ヘッダー ファイルでは using 指令を使用しないでください。クライアント コードの名前空間が壊れる可能性があります。