自增运算符重载
总所周知,C++的自增运算符有两种基本使用方法,在这里我们分别称为i++
和++i
,想必大家在C语言课上已经学了自增运算符和自减运算符,这里就不再赘述,这里主要讲解自增运算符重载,自减运算符完全可以触类旁通。
首先了解什么是运算符重载。
定义:运算符重载是面向对象编程语言中的一种特性,它允许程序员重新定义或重载大部分的内置运算符,以便它们能用于自定义的数据类型。
什么意思呢?举个简单的例子,两个同为整型数的数相加很正常,大家也很常见。可大家看过两个同类型的自定义结构体或对象相加吗?这并非不可思议,在C++的世界里大量充斥着这些语法,并且它们有着良好的可读性。
先看一段简单的例子:
class Example {
public:
double a,b;
Example(){
}
Example(double r, double i) : a(r), b(i) {
}
};
int main() {
Example c1(1.0, 2.0);
Example c2(3.0, 4.0);
Example sum = c1 + c2;
return 0;
}
当你放到IDE里会报错,没错因为编译器并不认识这个加号,它不知道你想干什么,它该怎么做。这时,我们就需要加法运算符重载了,它的功能就是告诉编译器这个加法究竟该怎么做。
重载后:
class Example {
public:
double a,b;
Example(){
}
Example(double r, double i) : a(r), b(i) {
}
Example operator+(const Example &rhs) const {
return {
a + rhs.a,b