为什么在类定义中定义友元函数

时间:2017-02-28 15:34:49

标签: c++ c++11

在C ++中,我们可以在类定义中定义友元函数 如: -

class A {
public:
    A(int a): mem(a){}
    ~A() {}
    friend void fun() {}
private:
    int mem;
};
void fun();

然后我们可以调用此函数,就像任何常规函数一样。

fun();

有人可以解释(有例子):

  1. 在什么情况下我们需要在类中定义友元函数 定义

  2. 这种定义不可能有什么特别之处 通过在课堂上宣布作为朋友的功能来实现 定义外面的功能。

1 个答案:

答案 0 :(得分:3)

假设您已经知道什么是friend函数,那么您的示例绝对没有特殊含义:您拥有的是常规friend函数及其声明定义合并。

回想一下,友谊需要宣布在"朋友"一个功能。之后,该功能可以在某个地方定义,您有两种选择:

  • 课外 - 这是定义朋友功能的常用方法,或
  • 在课堂内 - 这就是您的榜样。

使用一种方法与另一种方法的基本注意事项与用于在定义类内部或外部的成员函数之间的规则相同。