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/4numer = 2 + 4 = 6这样,结果将是6/4(因为 denom 保持不变)。因为n/n = 1对于所有整数(除了0),(a+n)/n总是会增加1

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

于 2013-07-26T08:00:03.273 回答