关于这个代码,我有两个问题:
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),而当在类名称空间内没有定义类时,可以在函数声明为朋友之后声明函数.