++ を後置より前置で使う理由
そもそも前置と後置はどう違う
前置はインクリメントした後の状態を返す、後置はインクリメントする前の状態を返す。
int a = 3, b = 3; cout << ++a // 4 << b++ // 3 << endl;
後置は変更前の値を保持する必要がある
なんかのクラスで後置の ++ を定義するとこんな風になる。
// int のダミー引数を受け取るようにすると後置の ++ をオーバーロード MyClass MyClass::operator++ (int) { MyClass before = *this; //変更前の値を保存 ... //自分をインクリメント return before; //変更前の値を返す }