- 运算符重载是一种形式的C++多态
- 多态指的是用户能够定义多个名称相同但特征标(参数列表)不同的函数
为什么要使用运算符重载
- 让不同的数据类型拥有一样的操作运算符,想象一下如果必须对不同的物体使用不同的动词,比如同一个动作提,如果提起左脚和提起汤匙得分别用两个不一样的动词lift_lft和lift_sp,那英语讲会变得无比复杂。
- c语言的运算符重载,比如 * 既表示乘法,也在指针中表示取值
如何使用运算符重载
运算符重载的定义
图1:正常的求和函数
图2:使用了运算符重载的求和函数
从上图中我们知道,就是把求和函数改成operator+
即可,运算符重载的格式为
operator+ //operator是重载关键字,+表示你要重载的符号
运算符重载的使用
由前文我们已经重载了运算符+了,把一个类里面的求和函数sum
重载成了+
,我们我们来使用一下我们重载的符号。
对于前文的如果没有重载运算符我们会使用如下代码,比如我们
Time a;
Time b;
Time c;
c=a.sum(b);
而使用了重载运算符我们则可以使用如下代码
Time a;
Time b;
Time c;
c+a+b;//方法1
//或
c=a.operator+(b);//方法2
上述的方法1和方法2的效果是一样的,其中方法2是使用了非重载运算符的方法
多次运算