Middle
Ako preťažiť operátor postfiksového a prefixového inkrementu v C++?
sobes.tech AI
Odpoveď od AI
Operátory inkrementácie prefixu a postfixu ++ v jazyku C++ sú prepísané pomocou dvoch rôznych podpisov funkcií člena:
-
Prefixová inkrementácia: Vráti odkaz na aktuálny objekt (
*this) po jeho zmene.ClassName& operator++() { // Logika prefixovej inkrementácie // Zmena stavu objektu return *this; // Vráti odkaz na zmenený objekt } -
Postfixová inkrementácia: Vráti kópiu objektu pred jeho zmenou. Odlišuje sa prítomnosťou fiktívneho parametra
int.ClassName operator++(int) { ClassName temp = *this; // Uložiť aktuálny stav // Logika postfixovej inkrementácie // Zmena stavu objektu return temp; // Vráti uloženú kópiu }
| Typ inkrementácie | Podpis funkcie | Vrátená hodnota | Parametre |
|---|---|---|---|
| Prefixová | ClassName& operator++() |
Odkaz na zmenený objekt | Žiadny |
| Postfixová | ClassName operator++(int) |
Kópia objektu pred zmenou | Fiktívny int |