-1

同じ名前空間が複数回含まれている場合、問題はありますか?

#include<iostream>
using namespace custom;
using namespace custom;

名前空間が複数回含まれないように、ヘッダー ファイルなどの名前空間にガードを適用することはできますか? (#ifndef のように ...)

4

3 に答える 3

5

ヘッダーで「名前空間を使用する」を使用しないことをお勧めします。

于 2013-06-17T18:22:06.960 に答える
5

名前空間ディレクティブとプリプロセッサ ディレクティブには違いがあります。2回書くことはできますが、それではどこにも行きません。

第二に、これは問題ではないため、これを「防ぐ」方法はありません。名前空間ディレクティブを保護したり、繰り返したりする必要はありません。

この投稿は、名前空間に関してエラーが発生する可能性がある場所を少し伝えています。この情報が関係のないものである場合はお詫び申し上げます - 明確にするためだけに.

Pintu Shukla の投稿--

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 つの名前空間を宣言した場合。ただし、両方の名前空間に同じオブジェクトが含まれている場合、エラーがスローされます。

于 2013-06-17T18:54:34.793 に答える