- 6
- 0
- 约3.32万字
- 约 78页
- 2017-04-01 发布于四川
- 举报
谭浩强“C程序的设计”演示课件第10章节
第10章 运算符重载 10.1 什么是运算符重载 10.2 运算符重载的方法 10.3 重载运算符的规则 10.4 运算符重载函数作为类成员函数和友元函数 10.5 重载双目运算符 10.6 重载单目运算符 10.7 重载流插入运算符和流提取运算符 10.8 不同类型数据间的转换 10.1 什么是运算符重载 所谓重载,就是重新赋予新的含义。函数重载就是对一个已有的函数赋予新的含义,使之实现新功能。 运算符也可以重载。实际上,我们已经在不知不觉之中使用了运算符重载。 现在要讨论的问题是: 用户能否根据自己的需要对C++已提供的运算符进行重载,赋予它们新的含义,使之一名多用。譬如,能否用“+”号进行两个复数的相加。在C++中不能在程序中直接用运算符“+”对复数进行相加运算。用户必须自己设法实现复数相加。例如用户可以通过定义一个专门的函数来实现复数相加。见例10.1。 例10.1 通过函数来实现复数相加。 #include iostream using namespace std; class Complex //定义Complex类 {public: Complex( ){real=0;imag=0;} //定义构造函数 Complex(double r,double i){real=r;imag=i;} //构造函数重载 Complex complex_add(Complex c2); //声明复数相加函数 void display( ); //声明输出函数 private: double real; //实部 double imag; //虚部 }; Complex Complex∷complex_add(Complex c2) {Complex c; c.real=real+c2.real; c.imag=imag+c2.imag; return c;} void Complex∷display( ) //定义输出函数 {cout″(″real″,″imag″i)″endl;} int main( ) {Complex c1(3,4),c2(5,-10),c3; //定义3个复数对象 c3=plex_add(c2); //调用复数相加函数 cout″c1=″; c1.display( ); //输出c1的值 cout″c2=″; c2.display( ); //输出c2的值 cout″c1+c2=″; c3.display( ); //输出c3的值 return 0; } 运行结果如下: c1=(3+4i) c2=(5-10i) c1+c2=(8,-6i) 结果无疑是正确的,但调用方式不直观、太烦琐,使人感到很不方便。能否也和整数的加法运算一样,直接用加号“+”来实现复数运算呢?如 c3=c1+c2; 编译系统就会自动完成c1和c2两个复数相加的运算。如果能做到,就为对象的运算提供了很大的方便。这就需要对运算符“+”进行重载。 10.2 运算符重载的方法 运算符重载的方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,以实现相应的运算。也就是说,运算符重载是通过定义函数实现的。运算符重载实质上是函数的重载。 重载运算符的函数一般格式如下: 函数类型 operator 运算符名称 (形参表列) { 对运算符的重载处理 } 例如,想将“+”用于Complex类(复数)的加法运算,函数的原型可以是这样的: Complex operator+ (Complex c1,Complex c2); 在定义了重载运算符的函数后,可以说: 函数operator+重载了运算符+。 为了说明在运算符重载后,执行表达式就是调用函数的过程,可以把两个整数相加也想像为调用下面的函数: int operator + (int a,int b) {return (a+b);} 如果有表达式5+8,就调用此函数,将5和8作为调用函数时的实参,函数的返回值为13。这就是用函数
您可能关注的文档
- 语音与图像集成电路.ppt
- 说课稿-物质燃烧的条件.ppt
- 说课演示课件外研版英语一年级下册Ilìkefootball演示课件.ppt
- 说计算机应用高中考试方向班语文课程.ppt
- 说理[写阐释句]改.ppt
- 诸子散文之孟子-墨子-韩非子.ppt
- 请观赏济南的冬天图片.ppt
- 诸城二轮复习思路古代科技文化.ppt
- 说课演示课件进出口贸易实务.ppt
- 诸葛时鹏组的浙江平湖勘察汇报.ppt
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
最近下载
- 2025年自来水供应专属承包合同样本版.docx VIP
- 2022化工安全与环保第二版课后题答案最新版(完整版).docx VIP
- ASUS华硕主板大师系列Z97-A 用户使用手册 (繁体中文).pdf
- 智能金融:AI 驱动的金融变革.pptx
- 人工智能在心血管无创影像中的应用:前沿技术与临床价值.pdf VIP
- 2025年氢燃料电池在数据中心储能应用趋势.docx
- 2026年中国铁路上海局集团有限公司招聘普通高校毕业生1236人备考题库及答案详解(考点梳理).docx VIP
- 井工煤矿复工复产开工第一课教案.docx VIP
- 社区居务监督培训课件.ppt VIP
- 心灵终结单位全代码.doc VIP
原创力文档

文档评论(0)