第七周任务二 友元函数

来源:互联网 发布:淘宝达人写作 编辑:程序博客网 时间:2024/05/22 05:33
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生 
* All rights reserved.
* 文件名称:    friend class                          
* 作        者:   姜雅明                              
* 完成日期:   2012      年   04    月   03     日
* 版  本  号:    1.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){}friend double Distance1(CPoint &c1, CPoint &c2);double Distance(CPoint p) const;double getx() {return x;};double gety() {return y;};};double CPoint::Distance(CPoint p) const{return sqrt((p.x - x) * (p.x - x) + (p.y - y) * (p.y - y));}double Distance1(CPoint &c1, CPoint &c2){ return sqrt((c1.x - c2.x) * (c1.x - c2.x) + (c1.y - c2.y) * (c1.y - c2.y));}double Distance2(CPoint &c1, CPoint &c2){return sqrt((c1.getx() - c2.getx()) * (c1.getx() - c2.getx()) + (c1.gety() - c2.gety()) * (c1.gety() - c2.gety()));}void main(){CPoint c1(2,5);CPoint c2(5,8);cout << "1.      类;两点间的距离为:" << c1.Distance(c2) << endl;cout << "2.友元函数;两点间的距离为:" << Distance1(c1, c2) << endl;   //友元函数显示两点间的距离cout << "3.普通函数;两点间的距离为:" << Distance2(c1, c2) << endl;   //普通函数显示两点间的距离system("pause");}


这个感觉还好吧,不是很难···