前置++:即++運算符位於操作數的前面,例如:++i;
後置++:即++運算符位於操作數後面,例如:i++;
注意一下幾點:
1、前置++重載時沒有參數,而後置++重載時有參數。不會使用其參數,僅僅是區分用。可以理解爲前置++後面有參數了,所以不需要參數
2、前置++需要返回引用,因爲重載自加運算符後可以返回對象的引用, 以方便在表達式中連續使用。而後置++返回的不是引用,所以不能進行連續使用。
#include<iostream>
using namespace std;
class point
{
public:
point(int a, int b):x(a), y(b){}
point& operator++() // 前置++
{
x++;
y++;
return *this;
}
point operator++(int) //後置++
{
point a = *this;
// 或者++a;
a.x++;
a.y++;
return a;
}
private:
int x;
int y;
};