第六周项目四:成员函数、友元函数和一般函数有区别(实践项目)
来源:互联网 发布:时间煮雨抄袭 知乎 编辑:程序博客网 时间:2024/05/17 22:20
问题及代码:
/**Copyright (c)2014,烟台大学计算机与控制工程学院*All rights reserved.*文件名称: 成员函数、友元函数和一般函数有区别 .cpp*作 者:白云飞*完成日期:2015年4月9日*版 本 号: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 display1(CPoint &); //display1是成员函数 void display4(CPoint &); friend double display2(CPoint &,CPoint &); //display2是友元函数 int getX() { return x; } int getY() { return y; }};double display3(CPoint &,CPoint &);//display3是一般函数double CPoint::display1(CPoint &p) //成员函数display1的实现{ return sqrt((p.x-x)*(p.x-x)+(p.y-y)*(p.y-y));}double display2(CPoint &p1,CPoint &p2) //友元函数dispaly2的实现,不加CPoint::,友元并不是类的成员{ return sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));}double display3(CPoint &p1,CPoint &p2) //display3是一般函数,dispaly3前不加CPoint::{ //不能直接访问,只能用公共接口getX()形式访问私有数据成员 return sqrt((p1.getX()-p2.getX())*(p1.getX()-p2.getX())+(p1.getY()-p2.getY())*(p1.getY()-p2.getY()));}int main(){ CPoint p1(3,3),p2(6,6); cout<<"p1点坐标:("<<p1.getX()<<","<<p1.getY()<<")"<<'\t'<<"p2点坐标:("<<p2.getX()<<","<<p2.getY()<<")"<<endl; cout<<"调用成员函数计算两点间距离的结果:"<<p1.display1(p2)<<endl; //成员函数这样调用:对象名.函数名() cout<<"调用友员函数计算两点间距离的结果:"<<display2(p1,p2)<<endl; //友员函数的调用和一般函数无异(但实现中可以不同) cout<<"调用一般函数计算两点间距离的结果:"<<display3(p1,p2)<<endl; //一般函数的调用 return 0;}
运行结果:
学习心得:
认清三种函数的区别
0 0
- 第六周项目四:成员函数、友元函数和一般函数有区别(实践项目)
- 第六周 项目四-成员函数、友元函数和一般函数有区别 一般函数
- 第六周 项目四-成员函数、友元函数和一般函数有区别 成员函数
- 第六周 项目四--成员函数、友元函数和一般函数有区别(1)
- 第六周 项目四--成员函数、友元函数和一般函数有区别(2)
- 第六周项目四成员函数、友元函数和一般函数有区别(1)
- 第六周项目四成员函数、友元函数和一般函数有区别(2)
- 第六周 项目四 成员函数、友元函数和一般函数有区别(3)一般函数
- 第六周上机实践项目4-成员函数、友元函数和一般函数有区别
- 第六周 项目四 成员函数、友元函数和一般函数有区别(1)成员函数
- 第六周 项目四:成员函数、友元函数和一般函数有区别
- 第六周项目四成员函数,友元函数和一般函数有区别
- 第六周 项目四-成员函数、友元函数和一般函数有区别
- 2015年第六周项目四:成员函数、友元函数和一般函数有区别
- 第六周项目四——成员函数,友元函数和一般函数有区别
- 第六周项目四 成员函数、友元函数和一般函数有区别
- 第六周 项目四-成员函数、友元函数和一般函数有区别 阅读
- 第六周 项目四 成员函数、友元函数和一般函数有区别(2)友函数
- java反射
- 第四周项目4——静态成员应用
- 第四周项目 3 用多文件组织多个类的程序
- SVN 添加/删除用户
- python写爬虫技巧(四):urllib2技巧与抓站技巧
- 第六周项目四:成员函数、友元函数和一般函数有区别(实践项目)
- 蓝桥杯第4届第10题
- 手势识别(三)2种添加手势方法和如何响应手势
- 移动端开发概览[webview和touch事件]
- java中异常检测
- 基础总结篇之四:Service完全解析
- 基于apache + mysql + php编译安装过程详解
- python如何直接在命令行使用系统模板template
- 续上篇cocos2dx函数重载异常的问题