含糊的名称空间

时间:2018-11-14 13:54:31

标签: c++ namespaces

以下实现给出了错误:“对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)将起作用。

任何解释吗?

1 个答案:

答案 0 :(得分:1)

由于您是using namespace n1;,所以n1中的第一个cout << n1::n1::x<<endl;不知道它应该与外部n1还是在n1中找到的匹配n1

相关问题