/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:
* 作 者:王引琳
* 完成日期: 2012 年 4 月 1 日
* 版 本 号:
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:
* 程序输出:
* 程序头部的注释结束
*/
#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 & );//成员函数的声明
friend double distance2 ( CPoint &, CPoint &);//友元函数的声明
double getx() { return x;} //公共接口
double gety() { return y;}
};
double distance3 ( CPoint &, CPoint &);//一般函数的声明
double CPoint :: distance1 ( CPoint & t)//成员函数的实现,要加域运算符
{
return sqrt( ( t.x - x) * (t.x - x ) + ( t.y - y ) * ( t.y - y ) );
}
double distance2 ( CPoint & t1, CPoint & t2)//友元函数的实现,不属于类,不需要加域运算符
{
return sqrt( (t1.x - t2.x ) * ( t1.x - t2.x ) + (t1.y - t2.y ) * (t1.y - t2.y ) );
}
double distance3 ( CPoint & t1, CPoint & t2)
{
return sqrt( (t1.getx() - t2.getx() ) * (t1.getx() - t2.getx() ) + (t1.gety() - t2.gety() ) * (t1.gety() - t2.gety() ) );
}//以公共接口的形式访问私有成员
void main ()
{
CPoint c1 ( 3 , 2 ) , c2 ( 5 , 7 );
cout << "此两点之间的距离为:" << c1. distance1 ( c2 ) << endl;
cout << distance2 ( c1, c2 ) << endl;
cout << distance3 ( c1 , c2 ) << endl;
}
上级感言:收获写在了注释里。