0、引言
重载,顾名思义从字面上理解就是重复装载,打一个不恰当的比方,你可以用一个篮子装蔬菜,也可以装水果或者其它,使用的是同一个篮子,但是可以用篮子重复装载的东西不一样。
正如在之前的文章《重载的奥义之函数重载》中介绍的类似,函数的重载是指利用相同的函数名设计一系列功能相近,但是功能细节不一样的函数接口;因此运算符重载也是指对于同一个运算符来说,它可以用于实现不同的功能。下面就一起来理解下运算符重载的应用。
1、运算符重载定义
正常来说,我们一般使用的运算符是对基本的数据类型进行操作,但是在C++中有了对象,导致对象无法通过运算符进行运算,故引入了运算符重载即需要重新的定义这些运算符,赋予已有运算符新的功能,使它能够用于特定类型执行特定的操作。运算符重载的实质是函数重载,它提供了C++的可扩展性。
运算符重载是通过创建运算符函数实现的,运算符函数定义了重载的运算符将要进行的操作。运算符函数的定义与其他函数的定义类似,唯一的区别是运算符函数的函数名是由关键字operator和其后要重载的运算符符号构成的。运算符函数定义的一般格式如下:- 1 <返回类型说明符> operator <运算符符号>(<参数表>)
- 2 {
- 3 <函数体>
- 4 }
复制代码 其中,“返回类型说明符”指出重载运算符的返回值类型,operator是定义运算符重载函数的关键字,“运算符符号”指出要重载的运算符名字,是C++中可重载的运算符,比如要重载加法运算符,这里直接写“+”即可,“参数表”指出重载运算符所需要的参数及其类型。可以看出,运算符重载是一种形式C++多态的体现。
例如,使用“+”将两个对象相加,编译器将根据操作数的数目和类型决定使用哪种加法定义,这样可以让代码看起来更加自然。
[code] 1 //正常情况下两个数组的数相加 2 for(int i= 0; i |