友元提供了不同类型或对象的成员函数之间、类的成员函数与一般函数之间的进行数据交换的共享机制。
友元是由 关键字friend 修饰非成员函数。。 友元是一个普通的函数,可以是其他类的函数。但不是本类的成员函数。
在它的函数体中,可以通过对象名访问私有和保护成员。
#include<iostream.h>
#include<math.h>
class point
{ public:
point(int xx=0,int yy=0) {X=xx; Y=yy;}
int Getx(){return X;}
int Gety(){return Y;}
friend float fdist(point &a,point &b);
private:
int X, Y;
};
float fdist(point &a,point &b)
{ double X=double(a.X-b.X);
double Y=double(a.Y-b.Y);
return float(sqrt(X*X+Y*Y));
}
void main()
{ point mypp(1,1),yopp(4,5);
cout<<"test is "<<endl;
cout<<fdist(mypp,yopp)<<endl;
}