C ++:朋友功能

时间:2018-02-03 12:06:43

标签: c++ function friend

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.

为什么会这样?

1 个答案:

答案 0 :(得分:4)

在第一个示例中(由于其他原因而无法编译:在定义函数时无法使用friend),您将函数display定义为全局范围。

在第二个例子中,display函数不是成员函数(它在类的范围内),但它仍然只在{{1的范围内声明} .class。您需要在全局范围内重新声明它,以使其实际位于全局范围内。