友元提供了不同類型或對象的成員函數之間、類的成員函數與一般函數之間的進行數據交換的共享機制。
友元是由 關鍵字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;
}