两个版本的++运算符重载,int operator++()用于++i,int operator++(int)用于i++。此处i++中的++实际上是一个二元运算符,只是第二个参数被忽略掉了。
C++并没有后置的一元运算符,所谓i++实际上是忽略了第二个参数的二元运算符。一元运算符均为!i, -i, ++i这样的形式。

#include 
using namespace std;
class A {
public:
	A() : value(0) {} 
	A(int x) : value(x) {}
	int operator++() {
		++value;
		return value;
	}
	int operator++(int) {
		value++;
		return value - 1;
	}
private:
	int value; 
};

int main() {
	A a(10);
	A b(10);
	cout << ++a << endl;
	cout << b++ << endl; 
}