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

Why define a friend function inside class definition

本文关键字:定义 朋友 函数 为什么      更新时间:2023-10-16

在C 中,我们被允许在类定义中定义朋友函数喜欢: -

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

,然后我们可以像任何常规功能一样调用此功能。

fun();

有人可以解释(示例):

  1. 在哪些情况下,我们需要定义同类中的朋友功能定义。

  2. 这种定义是什么特别的仅通过将功能宣布为课堂上的朋友就可以实现在外部定义功能。

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

回想一下,友谊需要在"朋友"一个功能的班级内被声明。之后,该函数可以在某个地方定义,您有两个选择:

  • 班级外 - 这是定义朋友函数的常见方法,或者
  • 在类中 - 这就是您的示例。

使用一种方法与另一种方法进行的基本注意事项与您在定义之间决定的规则相同。Div>