C++ 程序演示 C++ 中友元函数的工作原理。


2023 年 1 月 22 日, Learn eTutorial
1555

什么是 C++ 中的友元函数?

类的友元函数定义为不在该类中定义的函数,但它有权访问该类的所有 public、protected 和 private 成员和数据。即使在类定义中提到了友元函数,它也不会被视为类的成员函数。

要将函数声明为类的友元,请在类定义中将函数原型前面加上 friend 关键字,如下所示:

class className {
    ... .. ...
    friend returnType functionName(arguments);
    ... .. ...
}

如何创建 C++ 程序来演示友元函数的工作原理

创建一个类 Distance 并声明一个私有变量 meter。声明一个友元函数 addFive()

Friend int addFive(Distance)

其中,

  • Friend – 关键字
  • Int – 返回类型
  • addFive – 函数名
  • Distance – 参数

这里 addFive() 可以访问 private 和 public 数据成员。通过以下方式访问友元函数中的私有成员:
    d.meter += 5;
    return d.meter;

在 main 函数中为类 Distance 创建一个对象 D,并使用此对象访问友元函数
cout << "距离:" << addFive(D);

算法

步骤 1:  调用头文件 iostream。

步骤 2: 使用 namespace std.

步骤 3:创建一个类 Distance

步骤 4: 将变量 meter 声明为 private。

步骤 5: 声明一个友元函数 addFive()。

步骤 6: 定义一个 public 函数 Distance()。

步骤 7: 定义友元函数。

步骤 8: 打开整数类型 main 函数;int main()。

步骤 9: 为类 Distance 创建一个对象。

步骤 10: 使用对象访问友元函数并在屏幕上显示结果。

步骤 11: 退出
 

C++ 源代码

                                          // C++ program to demonstrate the working of friend function

#include <iostream>
using namespace std;

class Distance {
    private:
        int meter;
        
        // friend function
        friend int addFive(Distance);

    public:
        Distance() : meter(0) {}
        
};

// friend function definition
int addFive(Distance d) {

    //accessing private members from the friend function
    d.meter += 5;
    return d.meter;
}

int main() {
    Distance D;
    cout << "Distance: " << addFive(D);
    return 0;
}
                                      

输出

Distance: 5