Назад к вопросам
Middle
93
questionbank
Как перегрузить оператор постфиксного и префиксного инкремента в C++?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Постфиксный и префиксный операторы инкремента ++ в C++ перегружаются с помощью двух разных сигнатур функций-членов:
-
Префиксный инкремент: Возвращает ссылку на текущий объект (
*this) после его изменения.ClassName& operator++() { // Логика префиксного инкремента // Изменяем state объекта return *this; // Возвращаем ссылку на измененный объект } -
Постфиксный инкремент: Возвращает копию объекта до его изменения. Отличается наличием фиктивного параметра
int.ClassName operator++(int) { ClassName temp = *this; // Сохраняем текущее состояние // Логика постфиксного инкремента // Изменяем state объекта return temp; // Возвращаем сохраненную копию }
| Тип инкремента | Сигнатура функции | Возвращаемое значение | Параметры |
|---|---|---|---|
| Префиксный | ClassName& operator++() |
Ссылка на измененный объект | Нет |
| Постфиксный | ClassName operator++(int) |
Копия объекта до изменения | Фиктивный int |