重载后置减减运算符的时候,返回值是一个数值,和前置减减不同的是,前置减减返回的是类本身
class Jian
{
public:
int m_a = 1;
Jian& operator--()//重载前置减减
{
m_a--;
return *this;
}
Jian operator--(int)//重载后置减减
{
Jian temp;
temp = *this;
m_a--;
return temp;
}
};
可以明显的看出来他们的返回值不同,前置减减返回的是左值,后置减减返回的是右值,这一点在重载左移运算符的时候可能会出错,比如下面这个代码:
这里出错的原因是传值的时候引用符号接收的是左值,而后置加加重载后返回的是右值。可以用const修饰来改变这样的错误