运算符重载ppt课件.ppt

运算符重载ppt课件.ppt

ID:57029225

大小:184.00 KB

页数:84页

时间:2020-07-26

运算符重载ppt课件.ppt_第1页
运算符重载ppt课件.ppt_第2页
运算符重载ppt课件.ppt_第3页
运算符重载ppt课件.ppt_第4页
运算符重载ppt课件.ppt_第5页
资源描述:

《运算符重载ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第11章运算符重载什么是运算符重载运算符重载的方法几个特殊的运算符的重载自定义类型转换运算符运算符重载实例什么是运算符重载使系统内置的运算符可以用于类类型例如:+运算符能够实现2个对象间的加。例如:类A的对象a1、a2、a3,希望:a3=a1+a2;即:分别把对象a1和a2的各个数据成员值对应相加,然后赋给对象a3。问题的提出把某些事交给系统去做,用户只要知道相加就可扩充运算符的功能增强了C++语言的可扩充性使用户定义的类更像系统的内置类型运算符重载的限制不是所有的运算符都能重载重载不能改变运算符的优先

2、级和结合性重载不能改变运算符的操作数个数不能创建新的运算符可以重载的运算符+       -       *       /       %         ^         &       

3、    ~       !       =       <       >       +=       -=       *=    /=       %=       ^=       &=       

4、=       <<       >>       >>=    <<=      ==       

5、!=       <=       >=       &&       

6、

7、       ++    --       ->*,->       []       ()       new       delete    new[]    delete[]不能重载的运算符.       .*        ::       ?:       sizeof第11章运算符重载什么是运算符重载运算符重载的方法几个特殊的运算符的重载自定义类型转换运算符运算符重载实例运算符重载的方法运算符重载就是写一个函数解释某

8、个运算符在某个类中的含义要使得系统能自动找到重载的这个函数,函数名必须要体现出和某个被重载的运算符的联系。C++中规定,重载函数名为operator@其中,@为要重载的运算符。如要重载“+”运算符,该重载函数名为operator+。要重载赋值运算符,函数名为operator=。函数原型运算符的重载不能改变运算符的运算对象数。因此,重载函数的形式参数个数(包括成员函数的隐式指针this)与运算符的运算对象数相同运算符重载可以重载成成员函数也可以重载成全局函数实现。重载成全局函数时,最好把此函数设为友员函数

9、如果作为类的成员函数,它的形式参数个数比运算符的运算对象数少1。这是因为成员函数有一个隐含的参数this。在C++中,把隐含参数this作为运算符的第一个参数。当把一个一元运算符重载成成员函数时,该函数没有形式参数。把一个二元运算符重载成成员函数时,该函数只有一个形式参数,就是右操作数,当前对象是左操作数。重载实例为rational类增加“+”和“*”以及比较的重载函数,用以替换现有的add和multi函数方案一:重载成成员函数classRational{private:intnum;intden;vo

10、idReductFraction();public:Rational(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)con

11、st;booloperator<=(constRational&r1)const;booloperator>=(constRational&r1)const;booloperator!=(constRational&r1)const;voiddisplay(){cout<

12、den=den*r1.den;tmp.ReductFraction();returntmp;}RationalRational::operator*(constRational&r1)const{Rationaltmp;tmp.num=num*r1.num;tmp.den=den*r1.den;tmp.ReductFraction();returntmp;}boolRational::operator<(constRational&r1)c

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。