Sobes.tech
Middle

Kuidas üle koormata postfix- ja prefix-inkrementide operaatorit C++-is?

sobes.tech AI

Vastus AI-lt

C++ keeles eelsõnalise ja järelõnese ++ operaatori ülekirjutatakse kahe erineva liikmefunktsiooni signatuuriga:

  • Eelsõnaline suurendamine: Tagastab viite praegusele objekti (*this) pärast selle muutmist.

    ClassName& operator++() {
        // Eelsõnalse suurendamise loogika
        // Objekti oleku muutmine
    
        return *this; // Tagastab viite muudetud objekti
    }
    
  • Järelõnese suurendamine: Tagastab objekti koopiana enne selle muutmist. Erineb fiktiivse parameetri int olemasoluga.

    ClassName operator++(int) {
        ClassName temp = *this; // Salvestab praeguse oleku
    
        // Järelõnese suurendamise loogika
        // Objekti oleku muutmine
    
        return temp; // Tagastab salvestatud koopia
    }
    
Suurendamise tüüp Funktsiooni signatuur Tagastatav väärtus Parameetrid
Eelsõnaline ClassName& operator++() Muudetud objekti viide Puudub
Järelõnese ClassName operator++(int) Enne muutmist objekti koopia Fiktiivne int