Sobes.tech
Middle

Cum se suprascrie operatorul de incrementare postfix și prefix în C++?

sobes.tech AI

Răspuns de la AI

Operatorii de incrementare prefixate și postfixate ++ în C++ sunt suprasarcinați folosind două semnături diferite ale funcțiilor membre:

  • Incrementarea prefixată: Returnează o referință la obiectul curent (*this) după modificare.

    ClassName& operator++() {
        // Logica incrementării prefixate
        // Modificarea stării obiectului
    
        return *this; // Returnează referința la obiectul modificat
    }
    
  • Incrementarea postfixată: Returnează o copie a obiectului înainte de modificare. Se diferențiază prin prezența unui parametru fictiv int.

    ClassName operator++(int) {
        ClassName temp = *this; // Salvează starea curentă
    
        // Logica incrementării postfixate
        // Modificarea stării obiectului
    
        return temp; // Returnează copia salvată
    }
    
Tipul de incrementare Semnătura funcției Valoarea returnată Parametri
Prefix ClassName& operator++() Referință la obiectul modificat Niciunul
Postfix ClassName operator++(int) Copie a obiectului înainte de modificare Parametru fictiv int