0
я был перегружен два оператора: оператор < < и оператор ++оператор перегрузки << печати назад
оператор < <
ArithmeticSequence & ArithmeticSequence::operator++()
{
this->lastElement += goToNext;
this->sum += lastElement;
return *this;
}
оператор ++
ostream & operator<<(ostream & out, const ArithmeticSequence as)
{
out << as.sum;
return out;
}
сейчас основной является:
ArithmeticSequence AS(1.3, 2.5);
cout << "++AS sum: " << ++AS << " ++AS sum: " << ++AS << endl;
выхода:
++AS sum: 20.2 ++AS sum: 11.4
правильная необходимость вывода быть:
++AS sum: 11.4 ++AS sum: 20.2
почему выход реверс?
Также смотрите: http://stackoverflow.com/questions/4176328/undefined-behavior-and-sequence-points – NathanOliver
Примечание: Не порядок << является неуказан, но порядок двух вызовов '++ AS' –