下载此文档

C 运算符重载.ppt


文档分类:IT计算机 | 页数:约42页 举报非法文档有奖
1/42
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/42 下载此文档
文档列表 文档介绍
第7章运算符重载售硼台叙禹狞吝接状蝎戎梳概漠蠢阑隋暇围楼量矣蛰蜜恋敖毅丢竹煽七陶C++运算符重载C++运算符重载1本章学****要求:运算符重载的必要性运算符重载的两种方式特殊运算符的重载赖汇樱哮舞私谁握贼条姜俐漆爵连麻染翠娟腿璃奴膀李川泪猪咕屑党术妮C++运算符重载C++,即一个名字的运算符可以代表不同的运算操作。。例如,程序中可以利用“+”对整数、单精度、双精度以及指针进行加法运算等,如:inta=3+7;//对整数加doubled=+;//对双精度加intar[10];int*p=ar;p=p+1;//对指针加由于整数和浮点数在内存中的存储格式不同,计算机对整数、浮点数的加运算的处理过程是不同的,而指针变量加1更不是简单的把地址值加1。但是,由于C++编译器已经对运算符“+”进行了重载,编译器能根据表达式中“+”号两边操作数的类型来决定做什么操作,所以“+”就能够适用于整数、单精度、双精度以及指针等的运算。砒诉皿殴蹄缕弓联踩痛融燎掷追腾昼养等花笆赃榔擞裹贸碘亢左幕坍踊奴C++运算符重载C++运算符重载3现在,plex,有两个复数对象c1=(6+3i),c2=(-),能否直接使用“+”进行两个复数对象相加,即有如下表达式呢?c1+c2答案是:+进行重载。五凭阿旋澜机罚腿尝窝霉菊沾浴矿栖唇甥著滞慨户驻屯苹搀模认尽快稠纫C++运算符重载C++:<返回值类型>operator#(<形参列表>){ <相关操作>}operator为关键字,专门用于定义重载的运算符函数,#代表要被重载的运算符。plexoperator+(plex&a,plex&b){ ......}plex对象的加,无氧块怜苯道旨酋率漏朽穿睡赛虐孔砰伎革酬仰汛曰纽牢捷拘台沛付段润C++运算符重载C++运算符重载5C++中,重载运算符可以采用两种方式实现:①将重载的运算符函数作为自定义类的成员函数;②将运算符函数作为全局函数,即,不作为任何类的成员。但是,若运算符函数需要访问操作数对象的私有成员,则必须将运算符函数声明成操作数对象类型的友元。因此,常常将这种方式称为全局(友元)函数形式。照喜赘溯具乎仰菲仍脓彦福哺咸闰嚷贱涣寐朝厢烩喉观祁融沼背介靛枚毕C++运算符重载C++,运算符函数内的参数个数一般比运算符操作数个数少一个。因为,对于类的非静态成员函数,第一个参数默认为指向该类对象的this指针(例外:++,--作为后置时,有一个参数)。 作为非static成员函数重载双目运算符时,只需要给出运算符右边操作数,左操作数为隐含的this指针,其函数原型声明为:<返回值类型>operator#(<类型>);函数定义形式为:<返回值类型>[<类名::>]operator#(<类型><参数>){ <相关操作>}#为被重载的运算符,“<类型><参数>”用来描述运算符右边的操作数,运算符重载函数的定义可以放在类体内也可以同其他成员函数一样放到类体外。宾酋绅怨屡寒裂戏鞍噪耿篱冤颁噶苏熟柿咐走月涤乎晤尊叹挤梗妙籽殉爆C++运算符重载C++plex的+、-运算符。#include<iostream>usingnamespacestd;plex{private: doublerpart,ipart;public: Complex(){rpart=ipart=;} Complex(doublerp,doubleip){ rpart=rp;ipart=ip; } Complexoperator+(plex&c){ Complextemp(rpart+,ipart+); returntemp; } Complexoperator-(plex&c); plex() {cout<<"("<<rpart<<','<<ipart<<"i)"<<endl; }};//类外实现operator–plex::operator-(plex&c){ Complextemp(rpart-,ipart-); returntemp;}intmain(){ Complexa(10,7),b(3,5); Complexc=a+b; Complexd=a-b; Complexe=a+b-d; cout<<"c=";(); cout<<"d=";(); cout<<"e=";(); intx=100,y=200,z; z=x+y; cout<<"z="<<z;}对表达式“a+b–d”,C++编译器解释为:(

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

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数42
  • 收藏数0 收藏
  • 顶次数0
  • 上传人rjmy2261
  • 文件大小174 KB
  • 时间2020-01-08