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