程序:
//利用成员函数、友元函数和一般函数,实现三个版本的求两点间距离的函数,并设计main()函数完成测试。
#include <iostream>
#include <cmath>
using namespace std;
class CPoint
{
private:
double x; // 横坐标
double y; // 纵坐标
public:
CPoint(double xx=0,double yy=0):x(xx),y(yy){}
double getX()
{
return x;
}
double getY()
{
return y;
}
double distance1(CPoint c);//该类中的成员函数
friend double distance2(CPoint &c,CPoint d);//友元函数
};
double CPoint::distance1(CPoint c)
{
return sqrt((x-c.getX())*(x-c.getX())+(y-c.getY())*(y-c.getY()));
}
double distance2(CPoint &c,CPoint d)
{
return sqrt((c.x-d.x)*(c.x-d.x)+(c.y-d.y)*(c.y-d.y));
}
double distance3(CPoint &c,CPoint &d)
{
return sqrt((c.getX()-d.getX())*(c.getX()-d.getX())+(c.getY()-d.getY())*(c.getY()-d.getY()));
}
int main()
{
CPoint a(3,4);
CPoint b(2.5,3);
cout<<a.distance1(b)<<endl;
cout<<distance2(a,b)<<endl;
cout<<distance3(a,b)<<endl;
return 0;
}
结果:
体会:成为了朋友以后,就可以随便用“.”调用私有数据成员,就不用写get函数了