【发布时间】:2013-03-31 19:22:08
【问题描述】:
按照这里的问题 如果我像这样省略命名空间:
void f(window);
class window{
private:
int a;
friend void ::f(window);
};
void f(window rhs){
std::cout << rhs.a << std::endl;
}
我的行为很奇怪:
friend void f(window);
编译时没有 f(window) 的前向声明,但是
friend void ::f(window);
没有:
error C2039: 'f' : is not a member of '`global namespace''
有人能解释一下原因吗?如果我们无论如何都在全局命名空间中,为什么 :: 会产生这种差异......
谢谢?
【问题讨论】:
标签: c++ namespaces friend