Sobes.tech
Middle

Как да пренапишем оператора за постфиксно и префиксно увеличение в C++?

sobes.tech AI

Отговор от AI

Операторите за префиксно и постфиксно увеличение ++ в C++ се препокриват чрез две различни сигнатури на член-функции:

  • Префиксно увеличение: Връща препратка към текущия обект (*this) след неговата промяна.

    ClassName& operator++() {
        // Логика на префиксното увеличение
        // Промяна на състоянието на обекта
    
        return *this; // Връща препратка към променения обект
    }
    
  • Постфиксно увеличение: Връща копие на обекта преди неговата промяна. Различава се по наличието на фиктивен параметър int.

    ClassName operator++(int) {
        ClassName temp = *this; // Запазва текущото състояние
    
        // Логика на постфиксното увеличение
        // Промяна на състоянието на обекта
    
        return temp; // Връща запазеното копие
    }
    
Тип увеличение Подпис на функцията Връщана стойност Параметри
Префиксно ClassName& operator++() Препратка към променения обект Няма
Постфиксно ClassName operator++(int) Копие на обекта преди промяната Фиктивен int