Sobes.tech
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