class A {
friend void display();
};
friend void display() {
cout<<"friend";
}
int main() {
display();
}
工作得很好......
class A {
friend void display() {
cout<<"friend";
}
};
int main() {
display();
}
它显示:
display is not declared in this scope.
为什么会这样?
答案 0 :(得分:4)
在第一个示例中(由于其他原因而无法编译:在定义函数时无法使用friend
),您将函数display
定义为全局范围。
在第二个例子中,display
函数不是成员函数(它在类的范围内),但它仍然只在{{1的范围内声明} .class。您需要在全局范围内重新声明它,以使其实际位于全局范围内。