CCSE 1运算符重载 什么是运算符重载什么是运算符重载 运算符重载的方法运算符重载的方法 重载运算符的规则重载运算符的规则 运算符重载函数作为类成员函运算符重载函数作为类成员函数和友元函数数和友元函数 重载双目运算符重载双目运算符 重载单目运算符重载单目运算符 重载流插入运算符和流提取运重载流插入运算符和流提取运算符算符 不同类型数据间的转换 SE 2什么是运算符重载所谓重载,就是重新赋予新的含义。所谓重载,就是重新赋予新的含义。函数重载就是对一个已有的函数赋予函数重载就是对一个已有的函数赋予新的含义,使之实现新功能。新的含义,使之实现新功能。运算符也可以重载。实际上,我们已运算符也可以重载。实际上,我们已经在不知不觉之中使用了运算符重载。经在不知不觉之中使用了运算符重载。 CCSE 3什么是运算符重载代码分析代码分析: : 通过函数来实现复数通过函数来实现复数相加。相加。 CCSE 4运算符重载的方法运算符重载的方法是定义一个重载运运算符重载的方法是定义一个重载运算符的函数,在需要执行被重载的运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,以算符时,系统就自动调用该函数,以实现相应的运算。也就是说,运算符实现相应的运算。也就是说,运算符重载是通过定义函数实现的。运算符重载是通过定义函数实现的。运算符重载实质上是函数的重载。重载实质上是函数的重载。 CCSE 5运算符重载的方法重载运算符的函数一般格式如下: 重载运算符的函数一般格式如下: 函数类型函数类型 operator operator 运算符名称运算符名称 ( (形参形参表列表列) ){ { // //对运算符的重载处理对运算符的重载处理} } CCSE 6运算符重载的方法例如,想将例如,想将““+ +””用于 plex 类类( (复数复数) )的的加法运算,函数的原型可以是这样的: 加法运算,函数的原型可以是这样的: Complex operator+ (Complex& c1, Complex operator+ (Complex& c1, Complex& c2); Complex& c2); CCSE 7运算符重载的方法代码分析代码分析: : : : 改写例改写例 ,重载运算符,重载运算符““+ +””,使之能用于两个复数相加。,使之能用于两个复数相加。 CCSE 8运算符重载的方法虽然重载运算符所实现的功能完全可以虽然重载运算符所实现的功能完全可以用函数实现,但是使用运算符重载能用函数实现,但是使用运算符重载能使用户程序易于编写、阅读和维护。使用户程序易于编写、阅读和维护。在实际工作中,类的声明和类的使用在实际工作中,类的声明和类的使用往往是分离的。假如在声明往往是分离的。plex 类类时,对运算符时,对运算符+,-, +,-, * *,/ ,/都进行了重载, 都进行了重载, 那么使用这个类的用户在编程时可以那么使用这个类的用户在编程时可以完全不考虑函数是怎么实现的,放心完全不考虑函数是怎么实现的,放心大胆地直接使用大胆地直接使用+,-, +,-, * *,/ ,/进行复数的运进行复数的运算即可,十分方便。算即可,十分方便。 CCSE 9运算符重载的方法需要说明的是: 需要说明的是: 运算符被重载后,其运算符被重载后,其原有的功能仍然保留,没有丧失或改原有的功能仍然保留,没有丧失或改变。变。通过运算符重载,扩大了通过运算符重载,扩大了 C++ C++ 已有运算已有运算符的作用范围,使之能用于类对象。符的作用范围,使之能用于类对象。 CCSE 10重载运算符的规则(1) (1) C++ C++ 不允许用户自己定义新的运算不允许用户自己定义新的运算符,只能对已有的符,只能对已有的 C++ C++ 运算符进行重载。运算符进行重载。( (2 2) )C++ C++ 允许重载的运算符允许重载的运算符 C++ C++ 中绝大部分的运算符允许重载。具中绝大部分的运算符允许重载。具体规定见书中表体规定见书中表 。。
运算符重载 来自淘豆网www.taodocs.com转载请标明出处.