友元函数是指:虽然不是类成员却能够访问类的所有成员的函数。
- 如果将一个非成员函数声明为类的友员,那么这个函数可以访问类的私有成员。
- 关键字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.检查对象的状态,写出高效的代码。