я ++
Это возвращает значение i до его увеличения. Таким образом, идея заключается в том, что если вы хотите использовать i в функции, а затем увеличить значение после ее использования, вы можете сделать это за один шаг.
Например, вот как я бы перегрузил этот оператор для целых чисел.
Integer Integer::operator++()
{
Integer returnValue = *this;
this->increment();
return returnValue;
}
Таким образом, оно увеличивает значение, а затем возвращает то, что использовало . Он также не возвращает ссылку, потому что возврат ссылки будет отличаться от того, что было первоначально передано, что нарушит каскадирование.
++ я
Это увеличивает значение i, а затем возвращает новое значение. Таким образом, вы можете использовать это в ситуации, когда вы хотите увеличить i, а затем использовать новое значение в вашей функции.
Integer Integer::operator++(Integer i)
{
i.increment();
return i;
}
Таким образом, возвращаемое значение является увеличенным значением i.