当您在命名空间中时,如何为变量指定根命名空间

时间:2012-02-16 16:54:02

标签: c++

我可以这样做:

namespace UnitTesting {class UnitTest_1;}

namespace NLa
{
    class Search
    {
       friend class UnitTesting::UnitTest_1;
    }
}

但如果class UnitTest_1不在命名空间中呢?

3 个答案:

答案 0 :(得分:5)

使用::前缀访问全局/未命名的命名空间

friend class ::UnitTest_1;

您的原始样本可以像

一样轻松编写
friend class ::UnitTesting::UnitTest_1;

答案 1 :(得分:5)

您可以仅使用::来引用全局命名空间中的任何内容:

class UnitTest_1;

namespace NLa
{
    class SearchSolr
    {
       friend class ::UnitTest_1;
    }
}

答案 2 :(得分:2)

使用

friend class ::UnitTest_1; // Works on namespace-less classes

friend class UnitTest_1; // Works on both namespaced & namespace-less classes