友元/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