(1) because we want ++ to return a value, as in
a = b++;
and it costs less than returning a copy.
(2) yes, this works postfix operator. This explains why it is usually recommended to write a loop with iterators using prefix increments
for(iterator it = ..... ; it != .... , ++it) { ...}
instead of incremental increment: it avoids creating a temporary copy.
source share