2012-12-31 184 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; 
} 

然而,这可能不是你想要什么。在您声明它们之前,您仍然无法使用该名称空间中的任何类型。