第七周任务二之点类(友元函数的应用)
来源:互联网 发布:淘宝网薄款女士羽绒服 编辑:程序博客网 时间:2024/05/01 07:33
源程序:
/*(文件注释头部开始) *程序的版权和版本声明部分 *Copyright (c) 2011,烟台大学计算机学院学生 *All rights reserved. *文件名称:平面坐标点类*作 者:114-3张宗佳 *完成日期:2012年04月02号 *版本号:vc.3* 对任务及求解方法的描述部分 * 输入描术:输入坐标点* 问题描述:你需要完成的任务是,利用成员函数、友元函数和一般函数,实现三个版本的求两点间距离的函数,* 并设计main()函数完成测试。此任务和上例的区别在于“距离是一个点和另外一个点的距离”,参数个数上有体现。* 程序输出:输出两点之间距离、到原点距离、关于坐标轴和原点的对称点等* 程序头部的注释结束 */ #include<iostream>#include<cmath>using namespace std;enum SymmetricStyle { axisx,axisy,point};//分别表示按x轴, y轴, 原点对称class CPoint{private:double x; // 横坐标double y; // 纵坐标public:CPoint(double xx = 0,double yy = 0);double Distance1(CPoint p) ; // 两点之间的距离(一点是当前点,另一点为参数p)friend double Distance2(CPoint &);double getx(){return x;}double gety(){return y;}void input();};double Distance3(CPoint &);CPoint::CPoint(double xx,double yy):x(xx),y(yy){}// 两点之间的距离(一点是当前点,另一点为参数p)// 成员函数的实现,Distance前加Cpoint::,以x,y的形式直接访问私有数据成员double CPoint::Distance1(CPoint p){return(sqrt((x - p.x) * (x - p.x) + (y - p.y) * (y - p.y)));}//友元函数的实现,double Distance2(CPoint &p){CPoint p1;cout << "请输入一个点" ;p1.input();return(sqrt((p1.x - p.x) * (p1.x - p.x) + (p1.y - p.y) * (p1.y - p.y)));}//普通函数的实现double Distance3(CPoint &p){CPoint p1;cout << "请输入一个点" ;p1.input();return(sqrt((p1.getx() - p.getx()) * (p1.getx() - p.getx()) + (p1.gety() - p.gety()) * (p1.gety() - p.gety())));} //以x,y 形式输入坐标点void CPoint::input(){char c;cout << "格式:(x,y):" ;cin >> x >> c >> y;while(1){if(c != ','){cout << "格式出错请重输!" << endl;}else break;}return ;}void main(){CPoint p1,p2;cout << "输入第一个点p1:" ;p1.input();cout << "输入第二个点p2:";p2.input();cout << "这两点之间的距离是:" << p1.Distance1(p2) << endl;//调用成员函数cout << "这两点之间的距离是:" << Distance2(p1) << endl;//友元函数的调用cout << "这两点之间的距离是:" << Distance3(p1) << endl;//普通函数的调用system("pause");}
实验结果:
经验积累:
1.友元函数,一关键字friend声明,一个类的友元函数可以访问这个类中的私有成员,就像其实贺老可以去我家吃面.....
2.需要注意的是,友元函数并不属于类的成员函数,在访问类内的数据成员时,必须制定一个要访问的对象,通过制定的对象来访问私有数据成员
3.而普通函数只能通过调用类的成员函数来访问类的私有成员
上机感言:
好友元,好朋友~
- 第七周任务二之点类(友元函数的应用)
- 第七周任务二 友元函数
- 第七周任务二:使用成员函数、友元函数和一般函数的区别
- 第七周上机任务(成员函数、友元函数和一般函数之区别)
- 第七周任务二(利用成员函数、友元函数和一般函数,实现三个版本的求两点间距离的函数)
- 第七周任务二:学会使用友元函数 成员函数和一般函数
- 第七周 项目二:成员函数、友元函数、一般函数之区别(初体验)
- 第七周项目1-点类-友元函数
- 第七周项目1-点类-友元函数
- 第七周项目二:友元函数
- c++第七周任务-成员函数、友元函数和一般函数的区别
- 第七周上机任务项目2-成员函数、友元函数和一般函数的区别
- 第七周上机任务二--理解成员函数、友元函数和一般函数的区别 并会熟练使用它们
- 第七周项目二——成员函数、友元函数和一般函数之区别
- 第七周 项目二:成员函数、友元函数、一般函数之区别(实现三个版本的求两点间距离)
- 第七周项目二----一般函数,友元函数,成员函数的区别
- 第七周上机任务5-模板类中使用友元函数
- 第八周 项目一:任务二(友元函数完成运算符的重载)
- 第七周实验报告(二)
- flex linkbar使用
- 设计模式分析
- NCQ TCQ 什么是NCQ 什么是TCQ 区别
- linux图形界面基本知识(X、X11、Xfree86、Xorg、GNOME、KDE之间的关系) LINUX初学者经常分不清楚linux和X之间,X和Xfree86之间,X和KDE,GNOME等之间
- 第七周任务二之点类(友元函数的应用)
- CentOS6.2最小化安装后再安装后出现的问题
- 原来Image控件的Source属性是一个ImageSource对象啊!
- 1.2-main函数执行之前的过程
- 有关对耗时很大循环进行并行化优化的探讨之二:多重循环任务的并发处理
- 如何找到官方公布的和汇丰公布的PMI数据
- vim“找到 tag: 1/4 或更多” 其他定义的查看方法
- 第7周实验报告1
- 《C++第七周实验报告1-1》---含有静态数据成员和成员函数的Time类:类中所有的对象共有的数据