(6.4)--6.2 运算符重载的概念.ppt
《(6.4)--6.2 运算符重载的概念.ppt》由会员分享,可在线阅读,更多相关《(6.4)--6.2 运算符重载的概念.ppt(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 运算符重载的概念运算符重载的概念在此输入您的封面副标题C+是如何实现运算符的先看看C+中是如何实现运算符的。我们知道一个整型数,可以做加、减、乘、除等各种操作,其操作的形式不是函数(如:add(a,b),而是运算符(如a+b)形式。C+把运算符也看成与函数同样性质的实体了。可以对运算符进行函数那样的定义,之后,就可以自由地使用该运算符了。同一个运算符“+”可以完成实现两个整数的相加,也可以实现两个浮点数的相加,是因为C+语言针对预定义数据类型已经对“+”运算符做了适当的重载。运算符重载的概念运算符重载就是指同样的运算符可以施加于不同类型的操作数上,使同样的运算符作用于不同类型的数据导致不同类
2、型的行为。运算符重载实际就是函数重载,是通过静态联编实现的,是在编译时根据操作数的类型,决定该运算符的具体含义,即确定具体调用的哪个函数。初识运算符重载friend Complex operator+(const Complex&c1,const Complex&c2)return Complex(c1.Real+c2.Real,c1.Imag+c2.Imag);重载了+运算符,使得这样的表达式是合法的:Complex c1(2,3),c2(3,4);c1+c2;/实际是调用了operator+(c1,c2)运算符重载的两种方法运算符重载有两种方法:将运算符其重载为类的友元函数将运算符重载为类
3、的成员函数。运算符重载的规运算符重载的规则则在此输入您的封面副标题运算符重载的规则运算符重载需要遵循一定的规则(1)拒绝新创不能创建新的运算符。例如不是C+的运算符,所以不能重载运算符。只能重载C+原有的运算符(2)个别重载限制C+还规定以下运算符不能重载:“:”(作用域运算符)、“.”(成员访问运算符)和“*”(成员指针运算符)、sizeof运算符、typeof和三目运算符“?:”不能重载。(3)重载之后的运算符的优先级和结合性都不会改变。例如:如果已经定义了Complex类的“+”“*”运算,则对于下面的程序Complexa,b,c;Complexd=a+b*c一定是先做b*c运算,然后再做+运算,最后把结果赋给d运算符重载的规则(4)操作数个数不变 原先的操作数是单目的,重载也是单目形式的;原先操作数是双目的,重载也是双目的,这是不能改变的。例如,+是单目运算符,你就不能重载两个参数的+运算符。下面的程序是错误的。Complex operator+(Complex a,Complex b)/错运算符重载的规则(5)忌意义相左运算符重载后,就给运算符赋予了新的意义,新的意义应该反映运算的本质。运算符重载是针对新类型数据的实际需要,对原有运算符进行适当的改造,一般重载功能与原有功能相类似。避免没有目的地使用重载运算符运算符重载的规则
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 6.4-6.2 运算符重载的概念 6.4 6.2 运算 重载 概念
限制150内