C ++如何使一个类函数成为另一个命名空间中另一个类的朋友

时间:2018-12-01 20:59:21

标签: c++

我的问题是关于使一个类中的函数成为另一个类的朋友。这两个类都位于不同的名称空间中。

例如,下面的示例未编译,因为它说namespace o不存在。

namespace m
{
    class Value
    {
        friend std::vector<std::string> m::o::returnList();
    }
}


namespace m
{
    namespace o
    {
     class Operation
     std::vector<std::string> returnList() const;
     }
}

1 个答案:

答案 0 :(得分:0)

只需在以下位置声明名称空间:

namespace m
{
    namespace o
    {
    }

    class Value
    {
        friend std::vector<std::string> m::o::returnList();
    }
}