易百教程

22、友元/Friend函数是什么?

友元/Friend函数充当类的朋友。它可以访问类的私有成员和受保护成员。 友元函数不是类的成员,但它必须列在类定义中。 非成员函数不能访问类的私有数据。 有时,非成员函数需要访问数据。 友元函数是非成员函数,具有访问类私有数据的能力。

为了使外部函数对类友好,我们需要将函数声明为类的友元,如下所示:

class sample  
{  
   // data members;  
 public:  
  friend void abc(void);  
};

以下是友元函数的特点:

  • 友元函数不在声明它的类的范围内。
  • 由于它不在类的范围内,所以不能使用类的对象来调用它。 因此,可以像普通函数一样调用友元函数。
  • 友元函数不能直接访问私有成员,它必须对每个成员名称使用对象名称和点运算符。
  • 友元函数使用对象作为参数。

让我们通过一个例子来理解这一点:

#include <iostream>  
using namespace std;  
class Addition  
{  
 int a=5;  
 int b=6;  
 public:  
 friend int add(Addition a1)  
 {  
     return(a1.a+a1.b);  
 }  
};  
int main()  
{  
    int result;  
    Addition a1;  
     result=add(a1);  
     cout<<result;  
    return 0;  
}

运行结果:

11