当前位置:鱼C工作室 >C++ > 查看文章

运算符重载 – C++快速入门25

运算符重载

 

让编程改变世界

Change the world by program


 

运算符重载

 

所谓重载,就是重新赋予新的含义。函数重载是对一个已有的函数赋予新的含义,使之实现新功能。

其实运算符也可以重载,实际上,我们常常在不知不觉之中使用了运算符重载。

 

运算符重载的方法是定义一个重载运算符的函数,在需要执行被重载的运算符时,系统就自动调用该函数,以实现相应的运算。

也就是说,运算符重载是通过定义函数实现的。运算符重载实质上是函数的重载。

 

重载运算符的函数一般格式如下:

函数类型 operator 运算符名称(形参表列)

{

对运算符的重载处理

}

 

例如我们可以重载运算符 + , 如下:

int operator+(int a, int b)

{

return (a – b);

}

 

举个栗子:实现复数加法

(3, 4i)+ (5, -10i)= (8, -6i)

 

当我们还不知道重载,我们会这样做:complex.cpp(课件及源代码下载)

 

当我们朦胧懂得了重载,我们会这样做:complex2.cpp(课件及源代码下载)

 

当我们进一步了解小甲鱼,我们会这样做:苍井空vs小甲鱼.avi

我们在声明 Complex 类的时候对运算符进行了重载,使得这个类在用户编程的时候可以完全不考虑函数是如何实现的,直接使用 +, -, *, / 进行负数的运算即可。

 

其实,我们还可以对运算符重载函数 operator+ 改写得更简练一些:

Complex Complex::operator+(Complex &c2)

{

return Complex(real+c2.real, imag+c2.imag);

}

 

一些规则

C++不允许用户自己定义新的运算符,只能对已有的C++运算符进行重载。

 

除了一下五个阿哥不允许重载外,其他运算符允许重载:

.(成员访问运算符)

.*(成员指针访问运算符)

::(域运算符)

sizeof(尺寸运算符)

?:(条件运算符)

 

分页阅读: 1 2 下一页
为您推荐

报歉!评论已关闭.