我的程序:
/*
* 程序的版权和版本声明部分:
* Copyright (c) 2013, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:王鲁峰
* 完成日期: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)
friend double Distance2(CPoint &,CPoint &);
double getX(){return x;}
double getY(){return y;}
};
double Distance3(CPoint &,CPoint &);
double CPoint::Distance1(CPoint &p)
{
double dx, dy,d;
dx=p.x-x;
dy=p.y-y;
d=sqrt(dx*dx+dy*dy);
return d;
}
double Distance2(CPoint &a,CPoint &b)
{
double dx, dy,d;
dx=a.x-b.x;
dy=a.y-b.y;
d=sqrt(dx*dx+dy*dy);
return d;
}
double Distance3(CPoint &a,CPoint &b)
{
double dx, dy,d;
dx=(a.getX()-b.getX());
dy=(a.getY()-b.getY());
d=sqrt(dx*dx+dy*dy);
return d;
}
int main()
{
CPoint t1(-4,6),t2(2,5);
cout<<"成员函数 两点的距离为:"<<t1.Distance1(t2)<<endl;
cout<<"友元函数 两点的距离为:"<<Distance2(t1,t2)<<endl;
cout<<"一般函数 两点的距离为:"<<Distance3(t1,t2)<<endl;
return 0;
}
运行结果:
心得体会:
成员函数,友元函数,一般函数各有自己独特的写法与作用.