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.