




已阅读5页,还剩50页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2020/4/30,1,7.3几个典型运算符重载,2020/4/30,2,7.3几个典型运算符重载,数学类中常用的几个运算重载的特点和应用,6.3几个典型运算符重载,2020/4/30,3,7.3.1重载+与-,设AAobject;运算符+和-有两种方式:前置方式:+Aobject-Aobject,后置方式:Aobject+Aobject-,成员函数重载A:Aoperator+();解释为:Aobject.operator+();友员函数重载friendAoperator+(A,成员函数重载A:Aoperator+(int);解释为:Aobject.operator+(0);友员函数重载:friendAoperator+(A解释为:operator+(Aobject,0),伪参数,6.3.1重载+与-,2020/4/30,4,成员函数重载+,#includeclassIncreasepublic:Increase()value=0;voiddisplay()constcoutvaluen;Increaseoperator+();/前置Increaseoperator+(int);/后置private:unsignedvalue;IncreaseIncrease:operator+()value+;return*this;IncreaseIncrease:operator+(int)Increasetemp;temp.value=value+;returntemp;voidmain()Increasea,b,n;for(inti=0;i10;i+)a=n+;coutn=;n.display();couta=;a.display();for(i=0;i10;i+)b=+n;coutn=;n.display();coutb=;b.display();,6.3.1重载+与-,2020/4/30,5,成员函数重载+,#includeclassIncreasepublic:Increase()value=0;voiddisplay()constcoutvaluen;Increaseoperator+();/前置Increaseoperator+(int);/后置private:unsignedvalue;IncreaseIncrease:operator+()value+;return*this;IncreaseIncrease:operator+(int)Increasetemp;temp.value=value+;returntemp;voidmain()Increasea,b,n;for(inti=0;i10;i+)a=n+;coutn=;n.display();couta=;a.display();for(i=0;i10;i+)b=+n;coutn=;n.display();coutb=;b.display();,Increaseoperator+();,IncreaseIncrease:operator+()value+;return*this;,+n;,预定义版本,6.3.1重载+与-,2020/4/30,6,成员函数重载+,#includeclassIncreasepublic:Increase()value=0;voiddisplay()constcoutvaluen;Increaseoperator+();/前置Increaseoperator+(int);/后置private:unsignedvalue;IncreaseIncrease:operator+()value+;return*this;IncreaseIncrease:operator+(int)Increasetemp;temp.value=value+;returntemp;voidmain()Increasea,b,n;for(inti=0;i10;i+)a=n+;coutn=;n.display();couta=;a.display();for(i=0;i10;i+)b=+n;coutn=;n.display();coutb=;b.display();,Increaseoperator+();,IncreaseIncrease:operator+()value+;return*this;,+n;,重载版本,6.3.1重载+与-,2020/4/30,7,成员函数重载+,#includeclassIncreasepublic:Increase()value=0;voiddisplay()constcoutvaluen;Increaseoperator+();/前置Increaseoperator+(int);/后置private:unsignedvalue;IncreaseIncrease:operator+()value+;return*this;IncreaseIncrease:operator+(int)Increasetemp;temp.value=value+;returntemp;voidmain()Increasea,b,n;for(inti=0;i10;i+)a=n+;coutn=;n.display();couta=;a.display();for(i=0;i10;i+)b=+n;coutn=;n.display();coutb=;b.display();,Increaseoperator+(int);,IncreaseIncrease:operator+(int)Increasetemp;temp.value=value+;returntemp;,n+;,预定义版本,6.3.1重载+与-,2020/4/30,8,成员函数重载+,#includeclassIncreasepublic:Increase()value=0;voiddisplay()constcoutvaluen;Increaseoperator+();/前置Increaseoperator+(int);/后置private:unsignedvalue;IncreaseIncrease:operator+()value+;return*this;IncreaseIncrease:operator+(int)Increasetemp;temp.value=value+;returntemp;voidmain()Increasea,b,n;for(inti=0;i10;i+)a=n+;coutn=;n.display();couta=;a.display();for(i=0;i10;i+)b=+n;coutn=;n.display();coutb=;b.display();,Increaseoperator+(int);,IncreaseIncrease:operator+(int)Increasetemp;temp.value=value+;returntemp;,n+;,重载版本,6.3.1重载+与-,2020/4/30,9,成员函数重载+,#includeclassIncreasepublic:Increase()value=0;voiddisplay()constcoutvaluen;Increaseoperator+();/前置Increaseoperator+(int);/后置private:unsignedvalue;IncreaseIncrease:operator+()value+;return*this;IncreaseIncrease:operator+(int)Increasetemp;temp.value=value+;returntemp;voidmain()Increasea,b,n;for(inti=0;i10;i+)a=n+;coutn=;n.display();couta=;a.display();for(i=0;i10;i+)b=+n;coutn=;n.display();coutb=;b.display();,6.3.1重载+与-,2020/4/30,10,友员函数重载+,#includeclassIncreasepublic:Increase()value=0;voiddisplay()constcoutvaluen;friendIncreaseoperator+(Increase,6.3.1重载+与-,2020/4/30,11,友员函数重载+,#includeclassIncreasepublic:Increase()value=0;voiddisplay()constcoutvaluen;friendIncreaseoperator+(Increase,friendIncreaseoperator+(Increase,Increaseoperator+(Increase,+n;,通过引用参数操作对象,6.3.1重载+与-,2020/4/30,12,友员函数重载+,#includeclassIncreasepublic:Increase()value=0;voiddisplay()constcoutvaluen;friendIncreaseoperator+(Increase,friendIncreaseoperator+(Increase,Increaseoperator+(Increase,n+;,复制构造局部对象,6.3.1重载+与-,2020/4/30,13,友员函数重载+,#includeclassIncreasepublic:Increase()value=0;voiddisplay()constcoutvaluen;friendIncreaseoperator+(Increase,friendIncreaseoperator+(Increase,Increaseoperator+(Increase,n+;,伪参数,6.3.1重载+与-,2020/4/30,14,友员函数重载+,#includeclassIncreasepublic:Increase()value=0;voiddisplay()constcoutvaluen;friendIncreaseoperator+(Increase,6.3.1重载+与-,2020/4/30,15,7.3.2重载赋值运算符,赋值运算符重载用于对象数据的复制operator=必须重载为成员函数重载函数原型为:类型,6.3.2重载赋值运算符,2020/4/30,16,#include#includeclassNamepublic:Name(char*pN);Name(constName/调用重载赋值算符函数,定义Name类的重载赋值函数,6.3.2重载赋值运算符,2020/4/30,17,#include#includeclassNamepublic:Name(char*pN);Name(constName/调用重载赋值算符函数,定义Name类的重载赋值函数,初始化对象时调用复制构造函数,6.3.2重载赋值运算符,2020/4/30,18,#include#includeclassNamepublic:Name(char*pN);Name(constName/调用重载赋值算符函数,定义Name类的重载赋值函数,修改对象时调用重载赋值运算符函数,6.3.2重载赋值运算符,2020/4/30,19,定义Name类的重载赋值函数,Name:Name(char*pN)coutConstructingpNendl;pName=newcharstrlen(pN)+1;if(pName!=0)strcpy(pName,pN);size=strlen(pN);Name:Name(constName,Name,6.3.2重载赋值运算符,2020/4/30,20,Name:Name(char*pN)coutConstructingpNendl;pName=newcharstrlen(pN)+1;if(pName!=0)strcpy(pName,pN);size=strlen(pN);Name:Name(constName,定义Name类的重载赋值函数,Name,6.3.2重载赋值运算符,2020/4/30,21,Name:Name(char*pN)coutConstructingpNendl;pName=newcharstrlen(pN)+1;if(pName!=0)strcpy(pName,pN);size=strlen(pN);Name:Name(constName,定义Name类的重载赋值函数,Name,6.3.2重载赋值运算符,2020/4/30,22,Name:Name(char*pN)coutConstructingpNendl;pName=newcharstrlen(pN)+1;if(pName!=0)strcpy(pName,pN);size=strlen(pN);Name:Name(constName,定义Name类的重载赋值函数,Name,LiHai,6.3.2重载赋值运算符,2020/4/30,23,Name:Name(char*pN)coutConstructingpNendl;pName=newcharstrlen(pN)+1;if(pName!=0)strcpy(pName,pN);size=strlen(pN);Name:Name(constName,定义Name类的重载赋值函数,Name,LiHai,6,6.3.2重载赋值运算符,2020/4/30,24,Name:Name(char*pN)coutConstructingpNendl;pName=newcharstrlen(pN)+1;if(pName!=0)strcpy(pName,pN);size=strlen(pN);Name:Name(constName,定义Name类的重载赋值函数,Name,LiHai,6.3.2重载赋值运算符,2020/4/30,25,#include#includeclassNamepublic:Name(char*pN);Name(constName/调用重载赋值算符函数,定义Name类的重载赋值函数,6.3.2重载赋值运算符,2020/4/30,26,#include#includeclassNamepublic:Name(char*pN);Name(constName/调用重载赋值算符函数,定义Name类的重载赋值函数,6.3.2重载赋值运算符,2020/4/30,27,#include#includeclassNamepublic:Name(char*pN);Name(constName/调用重载赋值算符函数,定义Name类的重载赋值函数,6.3.2重载赋值运算符,2020/4/30,28,#include#includeclassNamepublic:Name(char*pN);Name(constName/调用重载赋值算符函数,定义Name类的重载赋值函数,6.3.2重载赋值运算符,2020/4/30,29,#include#includeclassNamepublic:Name(char*pN);Name(constName/调用重载赋值算符函数,定义Name类的重载赋值函数,6.3.2重载赋值运算符,2020/4/30,30,7.3.3重载运算符和(),运算符和()是二元运算符和()只能用成员函数重载,不能用友元函数重载,6.3.3重载运算符和(),2020/4/30,31,1重载下标算符,重载格式类:类型operator(类型);,运算符用于访问数据对象的元素,6.3.3重载运算符和(),2020/4/30,32,1重载下标算符,重载格式类:类型operator(类型);,运算符用于访问数据对象的元素,定义重载函数的类名,6.3.3重载运算符和(),2020/4/30,33,1重载下标算符,重载格式类:类型operator类型;,运算符用于访问数据对象的元素,函数返回类型,6.3.3重载运算符和(),2020/4/30,34,1重载下标算符,重载格式类:类型operator(类型);,运算符用于访问数据对象的元素,函数名,6.3.3重载运算符和(),2020/4/30,35,1重载下标算符,重载格式类:类型operator(类型);,运算符用于访问数据对象的元素,右操作数为符合原语义,用int,6.3.3重载运算符和(),2020/4/30,36,1重载下标算符,重载格式类:类型operator()类型;,运算符用于访问数据对象的元素,例设x是类X的一个对象,则表达式xy可被解释为x.operator(y),显式声明一个参数,6.3.3重载运算符和(),2020/4/30,37,2重载函数调用符(),/用重载()算符实现数学函数的抽象#includeclassFpublic:doubleoperator()(doublex,doubley);doubleF:operator()(doublex,doubley)returnx*x+y*y;voidmain()Ff;coutf(5.2,2.5)endl;,6.3.3重载运算符和(),2020/4/30,38,2重载函数调用符(),/用重载()算符实现数学函数的抽象#includeclassFpublic:doubleoperator()(doublex,doubley);doubleF:operator()(doublex,doubley)returnx*x+y*y;voidmain()Ff;coutf(5.2,2.5)endl;,f.operator()(5.2,2.5),6.3.3重载运算符和(),2020/4/30,39,2重载函数调用符(),/用重载()算符实现数学函数的抽象#includeclassFpublic:doubleoperator()(doublex,doubley);doubleF:operator()(doublex,doubley)returnx*x+y*y;voidmain()Ff;coutf(5.2,2.5),用于输出和输入用户自定义的数据类型,7.3.4重载流插入和流提取运算符,6.3.4重载流插入和流提取运算符,2020/4/30,41,#include#includeclassvectorpublic:vector(intsize=1);vector();int,为vector类重载流插入运算符和提取运算符,6.3.4重载流插入和流提取运算符,2020/4/30,42,#include#includeclassvectorpublic:vector(intsize=1);vector();int,为vector类重载流插入运算符和提取运算符,重载几个运算符,6.3.4重载流插入和流提取运算符,2020/4/30,43,#include#includeclassvectorpublic:vector(intsize=1);vector();int,为vector类重载流插入运算符和提取运算符,标准流类,6.3.4重载流插入和流提取运算符,2020/4/30,44,#include#includeclassvectorpublic:vector(intsize=1);vector();int,为vector类重载流插入运算符和提取运算符,使用预定义版本,6.3.4重载流插入和流提取运算符,2020/4/30,45,#include#includeclassvectorpublic:vector(intsize=1);vector();int,为vector类重载流插入运算符和提取运算符,使用重载版本cin.operator(A),6.3.4重载流插入和流提取运算符,2020/4/30,46,#include#includeclassvectorpublic:vector(intsize=1);vector();int,为vector类重载流插入运算符和提取运算符,使用重载版本cout.operator(A),6.3.4重载流插入和流提取运算符,2020/4/30,47,vector:vector(intsize)if(size100)cout=0,为vector类重载流插入运算符和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年住院医师规培-江苏-江苏住院医师规培(检验科)历年参考题库含答案解析
- 2025年住院医师规培-新疆-新疆住院医师规培(神经外科)历年参考题库含答案解析
- 2025年住院医师规培-新疆-新疆住院医师规培(口腔内科)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-重庆-重庆造林管护工三级(高级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-重庆-重庆房管员二级(技师)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-北京-北京造林管护工一级(高级技师)历年参考题库典型考点含答案解析
- 生产管理面试题及经验分享
- 电气安装施工技术方案
- 养鹅场鹅群行为监控方案
- 监测数据隐私保护-洞察及研究
- 仓库过期物料管理办法
- 信访驻京人员管理办法
- 窗口服务礼仪培训大纲
- 餐饮店品牌授权使用合同范本
- 学堂在线 走进医学 章节测试答案
- 蔬菜温室大棚项目可行性研究报告书书
- 闵行区2024-2025学年下学期七年级数学期末考试试卷及答案(上海新教材沪教版)
- 八大特殊作业管理培训
- 费用报销合规培训
- 义务教育科学课程标准(2022年版)
- Q-GDW11628-2016新能源消纳能力计算导则
评论
0/150
提交评论