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

在上述情況下,它顯示錯誤。 錯誤C2871:'NS':具有此名稱的命名空間不存在 我知道如果在counternamespace問題解決之前我定義了NS。但是想知道C++中是否存在任何像名稱空間的前向聲明這樣的事情,所以上面的問題在沒有在NS之前定義NS的情況下解決。 請幫忙。命名空間的正向聲明

+0

@ user1872084 ::上述鏈接與類的前向聲明有關。 – Kenta

回答

11

沒有說一個命名空間需要的所有內容馬上:

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

然而,這可能不是你想要什麼。在您聲明它們之前,您仍然無法使用該名稱空間中的任何類型。