4

私はこれについて(正直に言って)かなり考えました - 昨年の学期以来。そして、ここで何が起こっているのか、まだ完全にはわかりません。誰かが私を助けて啓発することができますか? 前置/後置の違いは問題ありません。それは私を混乱させている分数がどのようにインクリメントされているかです

たとえば、接頭辞の例を見てみましょう。では、分数が 2/4 だった場合、それは 3/4 に増えますか? numer += denom を見ると、2+2+4、つまり 8 が返されると思うからです。

// prefix increment operator
fraction& fraction::operator++() {
    numer += denom;
    return *this;
}

// postfix increment operator
fraction fraction::operator++(int) {        // Note dummy int argument
    fraction temp(*this);
    ++*this;                            // call the prefix operator
    return temp;

事前に感謝します:)

4

1 に答える 1

3

プレフィックス関数は次のように綴られます

numer = numer + denom;

その場合、結果は次のようになります2/4( denom は変更されないため)。すべての整数 ( を除く) に対して、は常に だけ増加します。numer = 2 + 4 = 66/4n/n = 10(a+n)/n1

後置バージョンは、上で説明した計算を行うために前置バージョンを使用します。

于 2013-07-26T08:00:03.273 に答える