Sobes.tech
Middle

Kā pārkraut postfix un prefix inkrementa operatoru C++?

sobes.tech AI

Atbilde no AI

C++ valodā prefiksa un postfixa ++ operatori pārslodās ar diviem dažādiem funkciju parakstiem:

  • Prefiksa palielināšana: Atgriež atsauci uz pašreizējo objektu (*this) pēc tā izmaiņām.

    ClassName& operator++() {
        // Prefiksa palielināšanas loģika
        // Objekta stāvokļa maiņa
    
        return *this; // Atgriež atsauci uz mainīto objektu
    }
    
  • Postfiksa palielināšana: Atgriež objekta kopiju pirms tā izmaiņām. Atšķiras ar fikcijas parametra int esamību.

    ClassName operator++(int) {
        ClassName temp = *this; // Saglabā pašreizējo stāvokli
    
        // Postfiksa palielināšanas loģika
        // Objekta stāvokļa maiņa
    
        return temp; // Atgriež saglabāto kopiju
    }
    
Palielināšanas tips Funkcijas paraksts Atgriežamā vērtība Parametri
Prefiksa ClassName& operator++() Atsauce uz mainīto objektu Nav
Postfiksa ClassName operator++(int) Objekta kopija pirms izmaiņām Fiktsīvs int