下载此文档

运算符重载.ppt


文档分类:IT计算机 | 页数:约78页 举报非法文档有奖
1/78
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/78 下载此文档
文档列表 文档介绍
,就是重新赋予新的含义。函数重载就是对一个已有的函数赋予新的含义,使之实现新功能。运算符也可以重载。实际上,我们已经在不知不觉之中使用了运算符重载。现在要讨论的问题是:用户能否根据自己的需要对C++已提供的运算符进行重载,赋予它们新的含义,使之一名多用。譬如,能否用“+”号进行两个复数的相加。在C++中不能在程序中直接用运算符“+”对复数进行相加运算。用户必须自己设法实现复数相加。例如用户可以通过定义一个专门的函数来实现复数相加。。。#include<iostream>usingnamespacestd;plex//plex类{plex(){real=0;imag=0;}//plex(doubler,doublei){real=r;imag=i;}//plex&c2);//声明复数相加函数voiddisplay();//声明输出函数private:doublereal;//实部doubleimag;//虚部};plex&c2){Complexc;=real+;=imag+;returnc;}plex∷display()//定义输出函数{cout<<″(″<<real<<″,″<<imag<<″i)″<<endl;}intmain(){Complexc1(3,4),c2(5,-10),c3;//定义3个复数对象c3=plex_add(c2);//调用复数相加函数cout<<″c1=″;();//输出c1的值cout<<″c2=″;();//输出c2的值cout<<″c1+c2=″;();//输出c3的值return0;}运行结果如下:c1=(3+4i)c2=(5-10i)c1+c2=(8,-6i)蘑垂署蛀培攒议蛆诅历办伶尧贼弘利婶楚僵烙锥莲刨霖二虽麻汇颇擂炸替运算符重载运算符重载结果无疑是正确的,但调用方式不直观、太烦琐,使人感到很不方便。能否也和整数的加法运算一样,直接用加号“+”来实现复数运算呢?如c3=c1+c2;编译系统就会自动完成c1和c2两个复数相加的运算。如果能做到,就为对象的运算提供了很大的方便。这就需要对运算符“+”进行重载。国胞粟若矿祖究饭凭毯炽民悄利绥酋赔易俏诱快截闲靖樊耻旧稍炉揪忿杠运算符重载运算符重载运算符重载的方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,以实现相应的运算。也就是说,运算符重载是通过定义函数实现的。运算符重载实质上是函数的重载。重载运算符的函数一般格式如下:函数类型operator运算符名称(形参表列){对运算符的重载处理}例如,想将“+”plex类(复数)的加法运算,plexoperator+(Complex&plex&c2);,可以说:函数operator+重载了运算符+。为了说明在运算符重载后,执行表达式就是调用函数的过程,可以把两个整数相加也想像为调用下面的函数:intoperator+(inta,intb){return(a+b);}如果有表达式5+8,就调用此函数,将5和8作为调用函数时的实参,函数的返回值为13。这就是用函数的方法理解运算符。“+”,使之用于复数相加。,重载运算符“+”,使之能用于两个复数相加。#include<iostream>usingnamespacestd;plex{plex(){real=0;imag=0;}Complex(doubler,doublei){real=r;imag=i;}Complexoperator+(Complex&c2);//声明重载运算符的函数voiddisplay();private:doublereal;doubleimag;};plex∷operator+(Comp

运算符重载 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数78
  • 收藏数0 收藏
  • 顶次数0
  • 上传人szh187166
  • 文件大小260 KB
  • 时间2020-03-02