Sobes.tech
Middle

Jak přetížit operátor postfixového a prefixového inkrementu v C++?

sobes.tech AI

Odpověď od AI

Operátory inkrementace prefixové a postfixové ++ v C++ jsou přetíženy pomocí dvou různých podpisů funkcí člena:

  • Prefixová inkrementace: Vrací odkaz na aktuální objekt (*this) po jeho změně.

    ClassName& operator++() {
        // Logika prefixové inkrementace
        // Změna stavu objektu
    
        return *this; // Vrací odkaz na změněný objekt
    }
    
  • Postfixová inkrementace: Vrací kopii objektu před jeho změnou. Liší se přítomností fiktivního parametru int.

    ClassName operator++(int) {
        ClassName temp = *this; // Uložit aktuální stav
    
        // Logika postfixové inkrementace
        // Změna stavu objektu
    
        return temp; // Vrací uloženou kopii
    }
    
Typ inkrementace Podpis funkce Vrácená hodnota Parametry
Prefixová ClassName& operator++() Odkaz na změněný objekt Žádný
Postfixová ClassName operator++(int) Kopie objektu před změnou Fiktivní int