8
namespace CounterNameSpace {
    int upperbound;
    int lowerbound;
    using namespace NS;//Error
}
namespace NS {
int i;
}
// ...
namespace NS {
int j;
}

上記の場合、エラーが表示されます。エラー C2871: 'NS': この名前の名前空間は存在しません カウンター名前空間の問題が解決される前に NS を定義するかどうかはわかっています。しかし、名前空間の前方宣言のようなものがc ++に存在するかどうかを知りたいだけです。上記の問題は、 counternamespace の前に NS を定義しなくても解決されます。助けてください 。

4

1 に答える 1

13

名前空間がすぐにすべてのコンテンツを必要とするということはありません。

namespace NS {}
namespace CounterNameSpace {
    int upperbound;
    int lowerbound;
    using namespace NS;
}
namespace NS {
int i;
}

ただし、これは希望どおりにならない場合があります。それらを宣言するまで、その名前空間の型を使用することはできません。

于 2012-12-31T08:10:59.660 に答える