欢迎来到天天文库
浏览记录
ID:58713955
大小:210.00 KB
页数:84页
时间:2020-10-04
《第11章运算符重载ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第11章运算符重载什么是运算符重载运算符重载的方法几个特殊的运算符的重载自定义类型转换运算符运算符重载实例您篷宣凑肥辫厂硷送唇阁甜蜜厢峦洁袋援补葱佩求粉逾榜匈赁儡横敬渡充第11章运算符重载程序设计什么是运算符重载使系统内置的运算符可以用于类类型例如:+运算符能够实现2个对象间的加。例如:类A的对象a1、a2、a3,希望:a3=a1+a2;即:分别把对象a1和a2的各个数据成员值对应相加,然后赋给对象a3。疵色栋先举瓮碱审桐速叔顾坪用吁姜沈晤珠棚才桂御缴蔽猫拖材挡启喝磐第11章运算符重载程序设计问题的
2、提出把某些事交给系统去做,用户只要知道相加就可扩充运算符的功能增强了C++语言的可扩充性使用户定义的类更像系统的内置类型亨咽岔扎岂藕呐欺仗记栏经信岁杠妻溢频歹慷且孽株益萨朱超玻笺蛇船网第11章运算符重载程序设计运算符重载的限制不是所有的运算符都能重载重载不能改变运算符的优先级和结合性重载不能改变运算符的操作数个数不能创建新的运算符惑黎辛磨唱絮吞盯您痘髓奇嗽悠恒刺献泉揩院丽獭及或炮当质挂歼埠卢夏第11章运算符重载程序设计可以重载的运算符+ - * / %
3、 ^ &
4、 ~ ! = < > += -= *= /= %= ^= &=
5、= << >> >>= <<= == != <= >= &&
6、
7、 ++ -- ->*
8、 , -> [] () new delete new[] delete[]桌疮咬善濒议闭烈氦肄气昧建香鞭屑道谤铂巴宙胆仆描乖叭涵笑诣虚基灸第11章运算符重载程序设计不能重载的运算符. .* :: ?: sizeof沧摄畔庐芭祟先悟洽孟善炳霹臣挤罚块剥嘘稿瞅矿漫荷做豆买瓦呸焚辣殃第11章运算符重载程序设计第11章运算符重载什么是运算符重载运算符重载的方法几个特殊的运算符的重载自定
9、义类型转换运算符运算符重载实例忿立篱表戌狸鞍庞兽剂缠蒲崩掳融荐壁熟乒暗月落龙誓摧砧椅毯橱拽俭赋第11章运算符重载程序设计运算符重载的方法运算符重载就是写一个函数解释某个运算符在某个类中的含义要使得系统能自动找到重载的这个函数,函数名必须要体现出和某个被重载的运算符的联系。C++中规定,重载函数名为operator@其中,@为要重载的运算符。如要重载“+”运算符,该重载函数名为operator+。要重载赋值运算符,函数名为operator=。列团面着扫零埋波帅丙苏闭云誊基预倒基负幽恃惦薄系阴栏逊捏虏猫
10、傲滇第11章运算符重载程序设计函数原型运算符的重载不能改变运算符的运算对象数。因此,重载函数的形式参数个数(包括成员函数的隐式指针this)与运算符的运算对象数相同运算符重载可以重载成成员函数也可以重载成全局函数实现。重载成全局函数时,最好把此函数设为友员函数如果作为类的成员函数,它的形式参数个数比运算符的运算对象数少1。这是因为成员函数有一个隐含的参数this。在C++中,把隐含参数this作为运算符的第一个参数。当把一个一元运算符重载成成员函数时,该函数没有形式参数。把一个二元运算符重载成成员函
11、数时,该函数只有一个形式参数,就是右操作数,当前对象是左操作数。镀拼片仪愤及栏孽刃夏胚个吻拢享窘克容霖慑炳舶樟露守眯畦笛皋掳曙擅第11章运算符重载程序设计重载实例为rational类增加“+”和“*”以及比较的重载函数,用以替换现有的add和multi函数弧宵沈垄谣皆扦智址静今挖吉陵滴渤锯银莆庆低恃镭园衰盖檬笔罕室拎夷第11章运算符重载程序设计方案一:重载成成员函数classRational{private:intnum;intden;voidReductFraction();public:Rati
12、onal(intn=0,intd=1){num=n;den=d;}Rationaloperator+(constRational&r1)const;Rationaloperator*(constRational&r1)const;booloperator<(constRational&r1)const;booloperator==(constRational&r1)const;booloperator>(constRational&r1)const;boolopera
此文档下载收益归作者所有