分数类增量运算符重载说明



老实说,我(老实说(考虑了很多 - 自上学期以来。我仍然不完全确定这里发生了什么。有人能帮助和启发我吗? 我对前缀/后缀的差异没问题。这就是分数是如何增加的,这让我感到困惑

以前缀为例。因此,如果我有一个 2/4 的分数,它会增加到 3/4 吗?因为当我看到数字 += 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;

提前感谢堆:)

前缀函数将拼写为

numer = numer + denom;

因此,在2/4的情况下,它将numer = 2 + 4 = 6因此结果将是6/4的(因为DENOM保持不变(。由于所有整数(0 除外(n/n = 1 (,(a+n)/n将始终增加 1 个。

后缀版本使用前缀版本进行上述计算。

最新更新