问题及代码
完成求点类中距离的任务。你需要实现求距离函数的三种版本:分别利用成员函数、友元函数和一般函数求两点间距离的函数,并设计main()函数完成测试。
/*
* Copyright (c) 2015, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:辛彬
* 完成日期:2015 年 4 月 12 日
* 版 本 号:v1.0
*/
#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) {}
void display1(CPoint &);
friend void display2(CPoint &,CPoint &);
double getx(){return x;}
double gety(){return y;}
};
void CPoint::display1(CPoint &a)
{
double s=sqrt((x-a.x)*(x-a.x)+(y-a.y)*(y-a.y));
cout<<"两点距离为:"<<s<<endl;
}
void display2(CPoint &a,CPoint &b)
{
double xx=a.x-b.x;
double yy=a.y-b.y;
double s=sqrt(xx*xx+yy*yy);
cout<<"两点距离为:"<<s<<endl;
}
void display3(CPoint &a,CPoint &b)
{
double xx=a.getx()-b.getx();
double yy=a.gety()-b.gety();
double s=sqrt(xx*xx+yy*yy);
cout<<"两点距离为:"<<s<<endl;
}
int main()
{
CPoint a(1,2),b(3,4);
a.display1(b);
display2(a,b);
display3(a,b);
return 0;
}
运行结果: