第六周 项目4-成员函数、友元函数和一般函数有区别 成员函数
第六周 项目四-成员函数、友元函数和一般函数有区别 成员函数
(2)模仿上面的示例,完成求点类中距离的任务。你需要实现求距离函数的三种版本:分别利用成员函数、友元函数和一般函数求两点间距离的函数,并设计main()函数完成测试。
提示:此项目和例子的区别在于“距离是一个点和另外一个点的距离”,不同版本在参数上有体现。三个版本建议分开测试,也可以如示例,放在一个程序中完成。
下面是点类的部分代码。
class CPoint { private: double x; // 横坐标 double y; // 纵坐标 public: CPoint(double xx=0,double yy=0):x(xx),y(yy){} ……//请继续写需要的代码 };
/* * Copyright (c) 2015, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作 者:冷基栋 * 完成日期:2015年 4 月 15 日 * 版 本 号: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 distance(Cpoint a)const; void input(); void output(); }; double Cpoint::distance(Cpoint a)const { return sqrt((x-a.x)*(x-a.x)+(y-a.y)*(y-a.y)); } void Cpoint::input() { char c; cin>>x>>c>>y; } void Cpoint::output() { cout<<"("<<x<<","<<y<<")"<<endl; } int main() { Cpoint p1(2,3),p2; p1.output(); cout<<"请输入p2点坐标."; p2.input(); p2.output(); cout << "两点之间的距离是:"<<p1.distance(p2) << endl; return 0; }
运行结果: