第5周项目4-成员函数、友元函数和一般函数的区别
2015-04-14 18:34
190 查看
/* *copyright (c)2015,烟台大学计算机学院 *All rights reserved *文件名称:project.cpp *作者:孙春红 *完成日期:2015年4月14日 *版本号:v1.0 * *问题描述:模仿上面的示例,完成求点类中距离的任务。 你需要实现求距离函数的三种版本:分别利用成员函数、友元函数和 一般函数求两点间距离的函数,并设计main()函数完成测试。 提示:此项目和例子的区别在于“距离是一个点和另外一个点的距离”, 不同版本在参数上有体现。三个版本建议分开测试,也可以如示例, 放在一个程序中完成。 *输入描述:略。 *程序输出:略。 */ #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 p)const; friend double Distance2(CPoint &,CPoint &); double get_x() { return x; } double get_y() { return y; } }; double Distance3(CPoint &,CPoint&); int main() { CPoint cp(1,3),p(2,3); cout<<"用成员函数求距离: "<<endl; cout<<cp.Distance1 (p)<<endl; cout<<"用友元函数求距离: "<<endl; cout<<Distance2(cp,p)<<endl; cout<<"用普通函数求距离: "<<endl; cout<<Distance3(cp,p)<<endl; return 0; } double CPoint::Distance1(CPoint p)const { double d; d=sqrt((p.x-x)*(p.x-x)+(p.y-y)*(p.y-y)); return d; } double Distance2 (CPoint &p1,CPoint &p2) { double d; d=sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y)); return d; } double Distance3 (CPoint &p1,CPoint &p2) { double d; d=sqrt((p1.get_x()-p2.get_x())*(p1.get_x()-p2.get_x())+(p1.get_y()-p2.get_y())*(p1.get_y()-p2.get_y())); return d; }
运行结果:
知识点总结:
阅读完程序后,了解友元函数、成员函数和一般函数的区别,学会写出程序
学习心得:
在编写一般函数的代代码时,照着友元函数的方式写了,导致出现error,原因是x和y
是私有的,可以在友元函数中使用,却不可以在一般函数中直接使用。
相关文章推荐
- 2015年大一下第5周项目4-成员函数、友元函数和一般函数有区别
- 第5周-项目4-成员函数-求点类中距离-区别成员函数、友元函数和一般函数
- 第5周-项目4-友元函数-求点类中距离-区别成员函数、友元函数和一般函数
- 第七周 项目二:成员函数、友元函数、一般函数之区别(实现三个版本的求两点间距离)
- 【项目2-成员函数、友元函数和一般函数之区别 点类】
- 第六周 项目四--成员函数、友元函数和一般函数有区别(1)
- C++第7周(春)项目3 成员函数、友元函数和一般函数有区别
- 第六周 项目四 成员函数、友元函数和一般函数有区别(3)一般函数
- 第七周 项目1-成员函数、友元函数和一般函数有区别(1)一般
- 第六周 【项目4-成员函数、友元函数和一般函数有区别】 (1)
- 第七周项目一-成员函数、友元函数和一般函数有区别(1)
- 第六周 项目四 成员函数、友元函数和一般函数有区别(1)成员函数
- 第六周项目4-成员函数、友元函数和一般函数有区别
- 第六周项目四--成员函数、友元函数和一般函数的区别(求两点的距离)
- 第六周 项目四-成员函数、友元函数和一般函数有区别
- 第七周实践项目1-成员函数、友元函数和一般函数有区别
- 第七周项目一友元函数、成员函数和一般函数的区别
- 第六周项目4-成员函数、友元函数和一般函数有区别
- 第六周项目四成员函数、友元函数和一般函数有区别(2)
- 第六周 项目四-成员函数、友元函数和一般函数有区别 成员函数