My questions: 1. When shgould I return const object, eg: const MyClass &operator ++(int);
instead of MyClass &operator ++(int); ? 2. Why ++ must take int as parameter?
1. That's not an object. That's a reference. You should return a constant reference when you don't want to allow changing the object, which is very often.
2. To distinguish it from the prefix version.