天天看点

项目三。两点距离(友元函数,成员函数,一般函数)

程序:

//利用成员函数、友元函数和一般函数,实现三个版本的求两点间距离的函数,并设计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函数了

继续阅读