По второму вопросу. И префикс, и постфикс ++
являются унарными операторами, у них нет левой стороны и правой стороны операнда, но есть один операнд, к которому они применяются. То есть в x++
и ++x
, x
- это операнд , не правая / левая рука, а операнд .
Тогда о том, почему int
, который требуется в сигнатуре постфиксной версии, требуется искусственный целочисленный аргумент (который не используется) только для того, чтобы дифференцировать сигнатуры и позволить компилятору узнать что вы объявляете / определяете постфикс ++
, а не префикс его версию. Считайте это тегом больше всего на свете, поскольку язык требует разных подписей.