* 程序的版权和版本声明部分
* 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");
}
这个感觉还好吧,不是很难···