友元函数是指:虽然不是类成员却能够访问类的所有成员的函数。
- 如果将一个非成员函数声明为类的友员,那么这个函数可以访问类的私有成员。
- 关键字friend使一个非成员函数能够访问类的私有成员。
#include <iostream>
using namespace std;
class myclass{
int a,b;
public:
myclass(int i,int j){
a=i;
b=j;
}
friend int sum(myclass x); //sum()是myclass类的友元函数。
};
int sum(myclass x){ //sum()不是任何类的成员函数。
return x.a+x.b; //因为sum()是myclass 的友元函数,所以可以直接访问成员变量a,b;
}
int main(){
myclass c1(3,8);
cout<<sum(c1);
return 0;
}
使用友元函数的好处:
1.重载某些特定的运算符。
2.简化某些I/O函数的创建。
3.检查对象的状态,写出高效的代码。