/*
* 文件名称:友元函数.cpp
* 作 者: 杨晓东
* 完成日期: 2016 年 4 月 8 日
* 版 本 号: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){}
double getx(){return x;}
double gety(){return y;}
double distance1(CPoint &p);
friend double distance2(CPoint &,CPoint &);
};
double distance3(CPoint &,CPoint &);
double CPoint::distance1(CPoint &p)
{
return sqrt((this->x-p.x)*(this->x-p.x)+(this->y-p.y)*(this->y-p.y));
}
double distance2(CPoint &p,CPoint &f)
{
return sqrt((p.x-f.x)*(p.x-f.x)+(p.y-f.y)*(p.y-f.y));
}
double distance3(CPoint &p,CPoint &f)
{
return sqrt((p.getx()-f.getx())*(p.getx()-f.getx())+(p.gety()-f.gety())*(p.gety()-f.gety()));
}
int main()
{
CPoint p1(2,5);
CPoint p2(3,5);
cout<<p1.distance1(p2)<<endl;
cout<<distance2(p1,p2)<<endl;
cout<<distance3(p1,p2)<<endl;
system("pause");
return 0;
}
二、运行结果
<img src="https://img-blog.csdn.net/20160408105632789?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
三、 心得体会:参数可以直接再次引用
四、知识点总结:成员函数、友元函数和一般函数的区别
<p style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; color: rgb(85, 85, 85); font-family: 'microsoft yahei'; font-size: 15px; line-height: 35px;">
</p>