質問

c ++では、同じ名前空間を2回含めることはできますか? コンパイラはエラーを与えませんが、それでも影響を及ぼします

ありがとう、

編集:
意味

using namespace std;

// . . STUFF
using namespace std;
役に立ちましたか?

解決

「include」の意味に依存します。言う:

using namespace std;    
...    
using namespace std:

はOKです。しかし言って:

namespace X {
   ...
namespace X {

X :: Xという名前のネストされた名前空間を作成しますが、これはおそらく望んでいないものです。

他のヒント

これがあなたの話していることなら、この使用法は問題ありません:

ファイル:foo.h

namespace tools
{
  class Widget
  {
  ...
  };
}

ファイル:bar.h

namespace tools
{
  class Gizmo
  {
  ...
  };
}

同じクラス/ファイルで2回ですか?問題になるべきではありませんが、必要でもありません。この問題を回避するために、コードをリファクタリングできると単純に思います。

フォローしても大丈夫かどうか尋ねていますか?

using namespace std;
using namespace std;

大丈夫ですが、通常、スコープ解決で名前空間要素を参照することを好みます。

ex:

std::vector
std::sort

私はあなたが何を言っているのか完全にはわかりません。単一の名前空間に複数のクラスを配置できます(これが全体的な考え方です)。通常、各クラスには独自のファイルがあるため、はい、同じ名前空間を複数のファイルで使用できます。

技術的には必須ではありませんが、作成する名前空間階層を表すディレクトリ構造を持つことをお勧めします。

using ディレクティブに関しては、コンパイラおよび/またはインテリセンスが警告を表示する可能性が最も高い(C#の場合)が、それ以外の場合は効果がありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top