For postfix, you will have to create a temporary variable to hold the state before you have incremented and return that when you are finished. The int you have to pass is a dummy variable and is only used to differentiate the postfix and the prefix operators.
Because the postfix is returning a temporary variable you return from the function, which is destroyed when you close the function. So you take a copy of it instead of a reference.
Prefix can return a reference since the object still exists after the completion of the function, and the user may want to perform more operations on that object within the same expression.