




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
6.2.4运算符重载为类的友元函数在此输入您的封面副标题运算符重载为类的友元函数运算符重载函数作为类的友元函数时,是独立于类外的普通函数。运算符重载为类的友元函数,这样,它就可以访问该类中的任何数据成员。这时,运算符所需要的操作数都需要通过函数的参数表来传递,在参数表中形参从左到右的顺序就是运算符操作数的顺序。对于双目运算符D,如果要重载为类X的友元函数,实现表达式xobj1Dxobj2,则函数有两个形参,其中xobj1和xobj2是类X的对象,经过重载后,表达式xobj1Dxobj2相当于调用函数operatorD(xobj1,xobj2)。对于单目运算符的重载,后面会详细讲解运算符重载为类的友元函数将运算符重载函数定义为类的友元函数,其原型在类内部的声明格式和在类外定义友元运算符重载函数的格式如下:class类名{friend返回类型operator运算符(形参表);};在类外定义友元运算符重载函数的格式如下:返回类型operator运算符(形参表){函数体}运算符重载为类的友元函数#include<iostream>#include<stdlib.h>usingnamespacestd;classFranc{private:intnume;//分子intdeno;//分母public:Franc(){}Franc(intnu,intde){
if(de==0)exit(1);nume=nu;deno=de;}
friendFrancoperator+(Francf1,Francf2);friendbooloperator==(Francf1,Francf2);voidFranSimp();voiddisplay(){cout<<"("<<nume<<"/"<<deno<<")"<<endl;}};voidFranc::FranSimp()//化简为最简分数{//求x分数的分子和分母的最大公约数intm,n,r;m=nume;n=deno;r=m%n;while(r!=0){m=n;n=r;r=m%n;}if(n!=0){//化简为最简分式 nume/=n; deno/=n; } if(deno<0){//分母为负时处理 nume=-nume; deno=-deno; }}Francoperator+(Francf1,Francf2){Francf;f.nume=f1.nume*f2.deno+f2.nume*f1.deno;//计算结果分数的分子f.deno=f1.deno*f2.deno;//计算结果分数的分母f.FranSimp();//对结果进行简化处理returnf;//返回结果分数}booloperator==(Francf1,Francf2)//如果两个分数相等则返回true否则返回false{if(f1.nume*f2.deno==f2.nume*f1.deno)returntrue;elsereturnfalse;}intmain(){Francf1(5,6),f2(1,2),f3; //定义分数类对象cout<<"f1=";f1.display();cout<<"f2=";f2.display();
f3=f1+f2;//用重载运算符实现分数加法cout<<"f1+f2=";f3.display();if(f1==f2)cout<<"f1和f2相等"<<endl; //判断f1和f2是否相等elsecout<<"f1和f2不相等"<<endl;return0;}程序运行结果:f1=(5/6)f2=(1/2)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中考数学高频考点专项练习:专题14 考点29 多边形和平行四边形 (2)及答案
- 护理礼仪沟通中语言的使用
- 幼儿园老师教育笔记撰写指南
- 2025年镁合金牺牲阳极项目建议书
- 我与创新创业教育
- 护士行为规范
- 二年级数学计算题专项练习1000题汇编集锦
- 2025年高速救助艇项目合作计划书
- 户外活动护理指导
- 陕西警官职业学院《文献检索与论文写作》2023-2024学年第二学期期末试卷
- 高考语文复习【知识精研】《千里江山图》高考真题说题课件
- 2024年广西区公务员录用考试《行测》真题及答案解析
- 2024年4月全国自考中国古代文学史二00539自考真题及解析
- PE管钢管供水管网施工方案
- 讲诚信课件教学课件
- 2024年浙江省单独招生文化考试语文试卷(含答案详解)
- 景区安全管理教育培训
- 无锡移动推拉棚施工方案
- 洗胃技术操作流程及评分标准
- 冯德全早教方案(0岁)
- 短视频拍摄服务合同
评论
0/150
提交评论