前++运算符组成的表达式是左值,后++运算符组成的表达式为右值,所以它们的重载函数是有所区别的:
1. 原型不同:
前++运算符重载函数原型为:
Pixel& operator++(); //返回类型为引用,没有int型形参
后++运算符重载函数原型为:
Pixel operator++(int); //返回类型为对象,有int型形参(该形参并不使用,只是为了区别于前++)
2. 函数体中处理方式不同:
前++:直接对*this对象进行“+1”操作,返回*this对象。
后++:先创建*this对象的副本(比如t),对*this对象进行“+1”操作,返回副本t。