It's a hack. The int parameter to the postfix version doesn't actually do anything useful. It's just a hacky syntax the C++ architects chose to create a distinction between the two versions of operator++, so you could overload both of them. Probably the parameter's value is always zero, or something.
They could have done something different, like introducing a new 'postfix' keyword and letting you write 'operator++() postfix' or something like that. But adding new keywords to an existing language is fraught with peril because it can break existing programs that had the bad fortune to be using that keyword as a variable name or something. So they added as few as they could get away with.
A similar thing happened with pure virtual functions, where you write '= 0' on the end of the function prototype to signify it's pure virtual. Again, they could have chosen to add a 'pure' keyword or suchlike, but the C++ decision-makers are very averse to new keywords.