相关疑难解决方法(0)

在命名空间内的类的友元函数

关于这个代码,我有两个问题:

namespace A { class window; }

void f(A::window);

namespace A
{
    class window
    {
    private:
       int a;
       friend void ::f(window);
    };
}

void f(A::window rhs)
{
    std::cout << rhs.a << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

1)为什么我需要通过执行:: f(window)来限定窗口类中的成员函数f是全局的?

2)为什么我需要在这种特殊情况下预先声明函数f(A :: window),而当在类名称空间内没有定义类时,可以在函数声明为朋友之后声明函数.

c++ namespaces friend

6
推荐指数
1
解决办法
2363
查看次数

标签 统计

c++ ×1

friend ×1

namespaces ×1