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 |