Have a look at these function signatures:
class Number {
public:
Number& operator++ (); // prefix ++
Number operator++ (int); // postfix ++
};
Prefix doesn't take any parameter but postfix does. Why? I thought we can recognize them with different return types.