Sobes.tech
Middle

Kaip perkrauti postfix ir prefix inkremento operatorių C++?

sobes.tech AI

Atsakymas iš AI

C++ kalboje prefiksiniai ir postfixiniai ++ operatoriai perkelti naudojant dvi skirtingas narių funkcijų parašus:

  • Prefiksinis padidinimas: Grąžina nuorodą į dabartinį objektą (*this) po jo pakeitimo.

    ClassName& operator++() {
        // Prefiksinio padidinimo logika
        // Objekto būsenos keitimas
    
        return *this; // Grąžina nuorodą į pakeistą objektą
    }
    
  • Postfiksinis padidinimas: Grąžina kopiją objekto prieš jo pakeitimą. Skiriasi dėl fiktyvaus parametro int buvimo.

    ClassName operator++(int) {
        ClassName temp = *this; // Išsaugo dabartinę būseną
    
        // Postfiksinio padidinimo logika
        // Objekto būsenos keitimas
    
        return temp; // Grąžina išsaugotą kopiją
    }
    
Inkremento tipas Funkcijos parašas Grąžinama reikšmė Parametrai
Prefiksas ClassName& operator++() Nuoroda į pakeistą objektą Nėra
Postfiksas ClassName operator++(int) Kopija prieš pakeitimą Fiktyvus int