объяснена перегрузка оператора приращения класса дроби

Я много думал об этом (честно) — с прошлого семестра. И я до сих пор не совсем уверен, что здесь происходит. Кто-нибудь сможет помочь и просветить меня? Я в порядке с разницей префикса / постфикса. Это то, как, черт возьми, увеличивается фракция, и это меня смущает

возьмите пример префикса например.
Так что, если бы у меня была фракция, которая была 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

Решение

Префиксная функция будет прописана в

numer = numer + denom;

так в случае 2/4 это было бы numer = 2 + 4 = 6 так что результат будет 6/4 (поскольку деном остается неизменным). поскольку n/n = 1 для всех целых чисел (кроме 0), (a+n)/n всегда будет увеличение на 1,

Постфиксная версия использует префиксную версию для выполнения расчетов, описанных выше.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]