Посмотрите на эти сигнатуры функций:
class Number {
public:
Number& operator++ (); // prefix ++
Number operator++ (int); // postfix ++
};
Префикс не принимает никаких параметров, но postfix делает. Зачем? Я думал, что мы можем распознать их с разными типами возврата.