一、问题及代码
/*
*文件名称:项目三
*作 者:武鹏翔
*完成日期:2017.5.7
*版 本 号:v6.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 &p2); //display1是成员函数
friend void display2(Cpoint &p1,Cpoint &p2); //display2是友元函数
int getx(){return x;}
int gety(){return y;}
};
void Cpoint::display1(Cpoint &p2)
{
cout<<sqrt((x-p2.x)*(x-p2.x)+(y-p2.y)*(y-p2.y))<<endl;
}
void display2(Cpoint &p1,Cpoint &p2)
{
cout<<sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y))<<endl;
}
void display3(Cpoint &p1,Cpoint &p2)
{
cout<<sqrt((p1.getx()-p2.getx())*(p1.getx()-p2.getx())+(p1.gety()-p2.gety())*(p1.gety()-p2.gety()))<<endl;
}
int main()
{
Cpoint p1(10,13),p2(11,14);
p1.display1(p2);
display2(p1,p2);
display3(p1,p2);
return 0;
}
二、运行结果
三、心得体会
对于第一种距离的计算还不熟悉,友元函数的单向性,谁是谁的友元函数,谁来申明,都需要搞清楚,自己也特别容易混
四、知识点归纳
三种显示方式,三种调用函数方法,成员函数,友元函数,一般函数掌握,理解其中不同