第11章运算符重载

第11章运算符重载

ID:40708347

大小:710.02 KB

页数:95页

时间:2019-08-06

第11章运算符重载_第1页
第11章运算符重载_第2页
第11章运算符重载_第3页
第11章运算符重载_第4页
第11章运算符重载_第5页
资源描述:

《第11章运算符重载》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第11章运算符重载什么是运算符重载运算符重载的方法几个特殊的运算符的重载自定义类型转换运算符运算符重载实例//Rational类的使用voidmain(){Rationalr1(1,3),r2(19,21),r3;//执行r3=r1+r2r3.add(r1,r2);//显示r1+r2=r3r1.display();cout<<"+";r2.display();cout<<"=";r3.display();cout<

2、rray(20,30);intvalue,i;for(i=20;i<=30;++i){cout<<"请输入第"<>value;array.insert(i,value);}//为数组元素赋值array[i]while(true){cout<<"输入要查找的元素序号(0:结束):";cin>>i;if(i==0)break;if(array.fatch(i,value))//取数组元素的值array[i]cout<

3、算符重载使系统内置的运算符可以用于自定义类型例如:+运算符能够实现2个对象间的加。例如:类A的对象a1、a2、a3,希望:a3=a1+a2;即:分别把对象a1和a2的各个数据成员值对应相加,然后赋给对象a3。运算符重载的限制重载不能改变运算符的优先级和结合性重载不能改变运算符的操作数个数不能创建新的运算符不是所有的运算符都能重载可以重载的运算符+       -       *       /%         ^         &       

4、    ~       !=<       >       +=       -=       *=    /=       %

5、=       ^=       &=       

6、=       <<       >>       >>=    <<===!=       <=       >=       &&       

7、

8、++--->*,->[]()       new       delete    new[]    delete[]不能重载的运算符.       .*?:::sizeof第11章运算符重载什么是运算符重载运算符重载的方法几个特殊的运算符的重载自定义类型转换运算符运算符重载实例//Rational类的使用voidmain(){Rationalr1(1,3),r2(19,21

9、),r3;//执行r3=r1+r2r3=r1+r2;//显示r1+r2=r3cout<

10、函数原型运算符的重载不能改变运算符的运算对象数。因此,重载函数的形式参数个数(包括成员函数的隐式指针this)与运算符的运算对象数相同运算符重载可以重载成成员函数也可以重载成全局函数实现。重载成全局函数时,最好把此函数设为友员函数(封装性)。如果作为类的成员函数,它的形式参数个数比运算符的运算对象数少1。这是因为成员函数有一个隐含的参数this。在C++中,把隐含参数this作为运算符的第一个参数。当把一个一元运算符重载成成员函数时,该函数没有形式参数。把一个二元运算符重载成成员函数时,该函数只有一个形式参数,就是右操作数,当前对象是左操作数。运算符重载通常要对类的私有数据成

11、员作操作。如果用普通函数重载,则需要通过公有的方法访问私有的数据成员,运算速度较慢,或将所有的数据成员都设为公有,直接访问这些数据成员,这样将违反类的封装。重载实例为rational类增加“+”和“*”以及比较的重载函数,用以替换现有的add和multi函数方案一:重载成成员函数classRational{private:intnum,den;voidReductFraction();public:Rational(intn=0,intd=1){num=n;den=d;}Rationaloperator

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

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

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