Я много думал об этом (честно) — с прошлого семестра. И я до сих пор не совсем уверен, что здесь происходит. Кто-нибудь сможет помочь и просветить меня? Я в порядке с разницей префикса / постфикса. Это то, как, черт возьми, увеличивается фракция, и это меня смущает
возьмите пример префикса например.
Так что, если бы у меня была фракция, которая была 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;
спасибо, куча заранее 🙂
Префиксная функция будет прописана в
numer = numer + denom;
так в случае 2/4
это было бы numer = 2 + 4 = 6
так что результат будет 6/4
(поскольку деном остается неизменным). поскольку n/n = 1
для всех целых чисел (кроме 0
), (a+n)/n
всегда будет увеличение на 1
,
Постфиксная версия использует префиксную версию для выполнения расчетов, описанных выше.
Других решений пока нет …