- /* (程序头部注释开始)
- * 程序的版权和版本声明部分
- * Copyright (c) 2011, 烟台大学计算机学院学生
- * All rights reserved.
- * 文件名称:
- * 作 者:李君凯
- * 完成日期: 2012 年 4 月 2 日
- * 版 本 号:
-
- * 对任务及求解方法的描述部分
- * 输入描述:
- * 问题描述:
- * 程序输出:
- * 程序头部的注释结束
- */
#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;
}
上机感言:呵呵,听同学讲了一遍,挺简单的o(∩_∩)o