Назад к вопросам
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