Sobes.tech
Junior — Middle

Bir dəyişənin postfix artırma operatorunun davranışını necə həyata keçirmək olar?

sobes.tech Süni İntellekt

AI-dan cavab

Postfiks artırma operatoru (məsələn, i++) əvvəlcə dəyişənin hazırkı dəyərini qaytarır və sonra onu 1 artırır. Belə davranışı həyata keçirmək üçün C++-da operatorun yüklənməsini istifadə edə bilərsiniz və ya artırmadan əvvəlki dəyəri qaytaran bir funksiya yaza bilərsiniz.

C++-da operator yüklənməsi ilə nümunə:

class Counter {
    int value;
public:
    Counter(int v) : value(v) {}

    // Postfiks++ operatoru
    Counter operator++(int) {
        Counter temp = *this; // hazırkı vəziyyəti yadda saxla
        value++;             // dəyəri artır
        return temp;         // köhnə dəyəri qaytar
    }

    int get() const { return value; }
};

// İstifadə:
// Counter c(5);
// Counter old = c++; // old.value == 5, c.value == 6

C dilində, operator yükləməsi olmadan, artırmadan əvvəlki dəyəri qaytaran funksiya yaza bilərsiniz:

int postIncrement(int* p) {
    int old = *p;
    (*p)++;
    return old;
}

Əsas məqam köhnə dəyəri yadda saxlamaq, dəyişəni artırmaq və yadda saxlanmış dəyəri geri qaytarmaqdır.