Ответ 1
Как сказал @Konrad, аргумент int не используется ни для чего, кроме distingush между формами pre-increment и post-increment.
Обратите внимание, что ваши операторы должны вернуть значение. Pre-increment должен возвращать ссылку, а post-increment должен возвращать значение. К остроумию:
class myClass
{
public:
myClass& operator++()
{
// ++myInstance.
return * this;
}
myClass operator++(int)
{
// myInstance++.
myClass orig = *this;
++(*this); // do the actual increment
return orig;
}
};
EDIT:
Как говорит г-н Бушуев, ниже, нет абсолютного требования, чтобы operator++
возвращалось непустым. Однако в большинстве случаев (я не могу думать об исключении) вам нужно. Особенно, если вы хотите присвоить результаты оператора другому значению, например:
myClass a;
myClass x = a++;
EDIT2:
Кроме того, с версией postimcrement вы вернете объект до того, как он будет увеличен. Обычно это делается с использованием локального временного. См. Выше.