2012-12-31 14 views
8
namespace CounterNameSpace { 
    int upperbound; 
    int lowerbound; 
    using namespace NS;//Error 
} 
namespace NS { 
int i; 
} 
// ... 
namespace NS { 
int j; 
} 

W powyższym przykładzie pokazuje błąd. error C2871: 'NS': przestrzeń nazw o tej nazwie nie istnieje Wiem, jeśli zdefiniuję NS zanim problem z counternamespace zostanie rozwiązany. Ale po prostu chcesz wiedzieć, czy coś takiego jak forward deklaracja przestrzeni nazw istnieje w C++ czy nie. Tak więc powyższy problem zostanie rozwiązany bez definiowania NS przed counternamespace. proszę o pomoc.forward declaration of namespace

+0

@ user1872084 :: Powyższy link jest związany z deklaracją klasy. – Kenta

Odpowiedz

11

Nic nie mówi nazw potrzebuje całą jego zawartość od razu:

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

to jednak nie może robić, co chcesz. Nadal nie będziesz mógł używać żadnego z typów w tej przestrzeni nazw, dopóki ich nie zadeklarujesz.