第六周项目四——成员函数、友元函数与一般函数有区别(2)
2015-04-16 20:51
288 查看
/* *Copyright (c) 2014,烟台大学计算机学院 *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 distance1(CPoint &); //参数用const CPoint &更佳 friend double distance2(CPoint &, CPoint &) ; double getX() { return x; } double getY() { return y; } }; double distance3(CPoint &,CPoint &) ; double CPoint::distance1(CPoint &p)//成员函数display1的实现,dispaly1前加CPoint: { double dx=(x-p.x), dy=y-p.y;//直接访问私有数据成员,实质是this->x形式 return sqrt(dx*dx+dy*dy); } double distance2(CPoint &p1,CPoint &p2)//友元函数dispaly2的实现,不加CPoint::,友元并不是类的成员 { double dx=(p1.x-p2.x), dy=p1.y-p2.y;//用p.x的形式直接访问私有数据成员——这就是友元 return sqrt(dx*dx+dy*dy); } double distance3(CPoint &p1,CPoint &p2)//display3是一般函数,dispaly3前不加CPoint:: { double dx=(p1.getX()-p2.getX()), dy=p1.getY()-p2.getY(); //不能直接访问,只能用公共接口p.getX()形式访问私有数据成员 return sqrt(dx*dx+dy*dy); } int main() { CPoint p1(0,3), p2(4,0); cout<<"利用成员函数:"<<p1.distance1(p2)<<endl; cout<<"利用友元函数: "<<distance2(p1,p2)<<endl; cout<<"利用一般函数: "<<distance3(p1,p2)<<endl; return 0; }
运行结果:
相关文章推荐
- 15第六周项目四——成员函数、友元函数和一般函数的区别
- 第六周上机实践项目4——成员函数、友元函数和一般函数有区别
- 第六周项目四 成员函数、友元函数和一般函数的区别
- 15第六周项目四——成员函数、友元函数和一般函数的区别(2)
- 第六周 课后实践:项目四——成员函数,友元函数和一般函数的区别
- 第六周项目四 成员函数友元函数和一般函数区别
- 第六周项目四——成员函数,友元函数和一般函数有区别
- 第六周项目四——成员函数、友元函数和一般函数有区别(1)
- 第六周项目4(3)-成员函数、友元函数和一般函数の区别
- 第六周项目4——成员函数,友元函数和一般函数的区别
- 第七周上机实践项目——成员函数、友元函数和一般函数有区别
- 第7周项目1(1)——成员函数、友元函数和一般函数的区别
- 第六周 项目四--成员函数、友元函数和一般函数有区别 友元函数
- 第六周 项目四 成员函数、友元函数和一般函数有区别(3)一般函数
- 第六周项目四-成员函数、友元函数和一般函数的区别
- 第六周 项目四-成员函数、友元函数和一般函数有区别之友元函数
- 第六周项目4:成员函数、友元函数和一般函数有区别
- 第七周项目一成员函数 友元函数 一般函数有区别
- 第六周上机实践项目4-成员函数、友元函数和一般函数有区别
- 第六周 项目四-成员函数、友元函数和一般函数有区别 一般函数