友元函数不是成员函数,但可以访问类的私有成员,它的作用在于提高程序的运行效率,但却破坏了类的封装性和隐蔽性。
#include <iostream>
#include <math.h>
using namespace std;
class Point
{
public:
Point(float i=0.0f, float j=0.0f)
{
x=i;
y=j;
}
friend float Distance(Point &left, Point &right);
private:
float x,y;
};
float Distance(Point &left, Point &right)
{
float dx=right.x-left.x;
float dy=right.x-left.x;
return sqrt(dx*dx+dy*dy);
}
void main()
{
Point a(1.0, 3.5), b(1.5, 5.5);
cout<<Distance(a, b)<<endl;
}