以下实现给出了错误:“对n1的引用不明确”
namespace n1 // (0)
{
namespace n1
{
int x;
}
namespace n1
{
int y;
}
}
using namespace n1; // (1)
//using namespace n1::n1; // (2)
int main()
{
cout << n1::n1::x<<endl;
}
通过注释(1)和使用(2)可以解决问题。
在(0)中使用另一个名称空间,变体(1)和(2)将起作用。
任何解释吗?
答案 0 :(得分:1)
由于您是using namespace n1;
,所以n1
中的第一个cout << n1::n1::x<<endl;
不知道它应该与外部n1
还是在n1
中找到的匹配n1
。