Sobes.tech
Middle

Ինչպես ավելացնել postfix և prefix ինկրեմենտ օպերատորները C++-ում?

sobes.tech AI

Պատասխան AI-ից

C++ լեզվում նախածանցային և վերջածանցային ++ օպերատորները վերագրվում են երկու տարբեր անդամ ֆունկցիայի ստորագրություններով:

  • Նախածանցային ավելացում: Վերադարձնում է ընթացիկ օբյեկտի հղում (*this) փոփոխությունից հետո:

    ClassName& operator++() {
        // Նախածանցային ավելացման տրամաբանություն
        // Օբյեկտի վիճակի փոփոխություն
    
        return *this; // Վերադարձնում է փոփոխված օբյեկտի հղումը
    }
    
  • Վերջածանցային ավելացում: Վերադարձնում է օբյեկտի պատճենը փոփոխությունից առաջ։ Տարբերվում է ֆիկտիվ պարամետրի int առկայությամբ:

    ClassName operator++(int) {
        ClassName temp = *this; // Պահպանում է ընթացիկ վիճակը
    
        // Վերջածանցային ավելացման տրամաբանություն
        // Օբյեկտի վիճակի փոփոխություն
    
        return temp; // Վերադարձնում է պահպանումը կատարված պատճենը
    }
    
Տիպը Ֆունկցիայի ստորագրություն Վերադարձվող արժեքը Պարամետրեր
Նախածանցային ClassName& operator++() Փոփոխված օբյեկտի հղում Ոչ մի
Վերջածանցային ClassName operator++(int) Օբյեկտի պատճենը փոփոխությունից առաջ Ֆիկտիվ int