问题描述:
完成求点类中距离的任务。你需要实现求距离函数的三种版本:分别利用成员函数、友元函数和一般函数求两点间距离的函数,并设计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 distance1(CPoint p);
friend double distance2(CPoint p1, CPoint p2);
int getX(){return x;}
int getY(){return y;}
};
double distance3(CPoint p1,CPoint p2);
int main()
{
CPoint p1(3,5),p2(2,8);
cout<<"两点间距离为:"<<endl;
cout<<p1.distance1(p2)<<endl;
cout<<distance2(p1,p2)<<endl;
cout<<distance3(p1,p2);
return 0;
}
double CPoint::distance1(CPoint p)
{
return sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));
}
double distance2(CPoint p1, CPoint p2)
{
return sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
}
double distance3(CPoint p1,CPoint p2)
{
double a=sqrt((p1.getX()-p2.getX())*(p1.getX()-p2.getX())+(p1.getY()-p2.getY())*(p1.getY()-p2.getY()));
return a;
}
运行结果: