/*
* 程序的版权和版本声明部分
* Copyright (c)2013, 烟台大学计算机与控制工程学院学生
* All rightsreserved.
* 文件名称:
* 作 者: 张立锋
* 完成日期: 2014年 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 Distance1(CPoint p) const;//成员函数
friend double Distance2(CPoint &,CPoint &);
void input();
double getx(){return x;}
double gety(){return y;}
//请继续写需要的代码
};
double CPoint::Distance1(CPoint p) const//成员函数
{
double dx, dy,d;
dx=p.x-x;
dy=p.y-y;
d=sqrt(dx*dx+dy*dy);
return d;
}
double Distance2(CPoint &p,CPoint &a)//友元函数
{
double dx, dy,d;
dx=p.x-a.x;
dy=p.y-a.y;
d=sqrt(dx*dx+dy*dy);
return d;
}
void CPoint::input()
{
cout<<"请输入两点坐标"<<endl;
cin>>x>>y;
}
double Distance3(CPoint &p,CPoint &a)//一般函数
{
double dx, dy,d;
dx=p.getx()-a.getx();
dy=p.gety()-a.gety();
d=sqrt(dx*dx+dy*dy);
return d;
}
int main()
{
int a , b, c;
CPoint t1,t2;
cout<<"请分别输入两点坐标"<<endl;
t1.input();
t2.input();
cout<<"两点间的距离是"<<endl;
a=t1.Distance1(t2);
b=Distance2(t2,t1);
c=Distance3(t2,t1);
cout<<a<<" "<<b<<" "<<c;
return 0;
}
运行结果
心得体会
对于 友元函数 一般函数 成员函数的区别有了一定的理解。。。说实在的,写这个程序的时候真是有点晕啊!!!