Sobes.tech
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 int paramé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