同じ名前空間が複数回含まれている場合、問題はありますか?
#include<iostream>
using namespace custom;
using namespace custom;
名前空間が複数回含まれないように、ヘッダー ファイルなどの名前空間にガードを適用することはできますか? (#ifndef のように ...)
ヘッダーで「名前空間を使用する」を使用しないことをお勧めします。
名前空間ディレクティブとプリプロセッサ ディレクティブには違いがあります。2回書くことはできますが、それではどこにも行きません。
第二に、これは問題ではないため、これを「防ぐ」方法はありません。名前空間ディレクティブを保護したり、繰り返したりする必要はありません。
この投稿は、名前空間に関してエラーが発生する可能性がある場所を少し伝えています。この情報が関係のないものである場合はお詫び申し上げます - 明確にするためだけに.
NameSpace は、コードまたは変数の単なる宣言領域です。変数または関数名などの衝突を避けるために使用されます。次のコードを見てください。
これは有効なコードです
namespace st
{
int i =0;
}
namespace st
{
int j =0;
}
using namespace st;
int main(int argc, char* argv[])
{
i=15;
j =10;
cout<<i<<j;
return 0;
}
今これを試してみてください。このコードは「i」というエラーを返します:再定義と複数の初期化
コードブロック
namespace st
{
int i = 0
}
namespace st
{
int i =0;
}
using namespace st;
int main(int argc, char* argv[])
{
i=15;
cout<<i;
return 0;
}
したがって、適切に有効な同じ名前の 2 つの名前空間を宣言した場合。ただし、両方の名前空間に同じオブジェクトが含まれている場合、エラーがスローされます。