Sobes.tech
Middle

Kako preopteretiti operator postfiksnog i prefiksnog inkrementa u C++?

sobes.tech АИ

Одговор од АИ

Operatori inkrementa prefiksni i sufiksni ++ u C++ se preopterećuju pomoću dve različite potpise funkcija članova:

  • Prefiksni inkrement: Vraća referencu na trenutni objekat (*this) nakon njegove promene.

    ClassName& operator++() {
        // Logika prefiksnog inkrementa
        // Izmena stanja objekta
    
        return *this; // Vraća referencu na izmenjeni objekat
    }
    
  • Postfiksni inkrement: Vraća kopiju objekta pre njegove promene. Razlikuje se po prisustvu fiktivnog parametra int.

    ClassName operator++(int) {
        ClassName temp = *this; // Sačuvaj trenutno stanje
    
        // Logika postfiksnog inkrementa
        // Izmena stanja objekta
    
        return temp; // Vraća sačuvanu kopiju
    }
    
Tip inkrementa Potpis funkcije Vraćena vrednost Parametri
Prefiks ClassName& operator++() Referenca na izmenjeni objekat Nema
Postfiks ClassName operator++(int) Kopija objekta pre promene Fiktivni int