The prefix increment operator increases its operand before producing the expression's result. In C++, its overload uses an empty parameter list, while the postfix form takes an unused int parameter to distinguish the two forms. section 9.6
A semantically correct prefix overload returns the modified object, commonly by reference. Implementing it through operator+= communicates intent and avoids treating prefix and postfix operations as identical. section 9.6
A legacy implementation that hides the mistake
Returning a value from prefix increment can still appear to work, but identical prefix and postfix implementations break their distinct semantics. Expressions such as repeated increments may compile while producing unexpected behavior, making debugging difficult. Prefer the corrected pattern: prefix modifies the object and returns it; postfix saves the original, modifies the object, and returns the saved value.
