友元函数作为对类方法的扩展,具有虽然不属于类但是可以访问类中private数据的功能
使用方法
class abt
{
private:
int a;
public:
abt()
{
a=5;
}
void show()
{
cout<<"a="<<a<<endl;
}
friend void show2(abt &);
friend void show3(abt *);
friend void show4(abt );
};
void show2(abt &ab)
{
cout<<"a="<<ab.a<<endl;
}
void show3(abt *p)
{
cout<<"a="<<p->a<<endl;
}
void show4(abt ab)
{
cout<<"a="<<ab.a<<endl;
}
int main()
{
abt ab;//定义类
ab.show();
show2(ab);
show3(&ab);
show4(ab);
return 0;
}
注意一个点,友元函数一般需要其friend类的对象作为参数(对象,对象的引用,对象的指针)不然其访问类私有成员的功能就没有用了,连对象都没有怎么访问它的类成员?