Middle
Hogyan lehet túlterhelni a postfix és prefix növelő operátort C++-ban?
sobes.tech MI
Válasz az MI-től
A C++ nyelvben az előtagos és utótagos ++ növelő operátorokat két különböző tagfüggvény aláírás segítségével túlterhelik:
-
Előtagos növelés: Visszaad egy hivatkozást a jelenlegi objektumra (
*this) a módosítás után.ClassName& operator++() { // Előtagos növelés logikája // Az objektum állapotának módosítása return *this; // Hivatkozás visszaadása a módosított objektumra } -
Utótagos növelés: Visszaadja az objektum másolatát a módosítás előtt. A különbség a fikciós
intparaméter meglétében van.ClassName operator++(int) { ClassName temp = *this; // Aktuális állapot mentése // Utótagos növelés logikája // Az objektum állapotának módosítása return temp; // A mentett másolat visszaadása }
| Növelés típusa | Függvény aláírása | Visszatérési érték | Paraméterek |
|---|---|---|---|
| Előtagos | ClassName& operator++() |
Hivatkozás a módosított objektumra | Nincs |
| Utótagos | ClassName operator++(int) |
A változtatás előtti objektum másolata | Fikciós int |