O‘zbekiston respublikasi oliy va o‘rta maxsus ta’lim vazirligi tоshkеnt dаvlаt iqtisоdiyot universitеti


Unar amallarni qo‘shimcha yuklash


Download 1.96 Mb.
Pdf ko'rish
bet48/83
Sana08.11.2023
Hajmi1.96 Mb.
#1757524
1   ...   44   45   46   47   48   49   50   51   ...   83
Bog'liq
Obyektga yo`naltirilgan dasturlash tillari

 
9.3. Unar amallarni qo‘shimcha yuklash 
Ixtiyoriy unar amali ikkita usulda tavsiflanish mumkin: yoki paramatrsizli 
funksiya komponentasi sifatida, yoki bitta parametrli global (do‘stona bo‘lishi 
mumkin) funksiya sifatida. Birinchi xolatda 
Z ifoda Z.operator 
(), ikkinchi 
xolatda esa operator (Z) chaqirilishini bildiradi.
Aniq sinf doirasida qayta yuklangan unar operatsiyalar faqat parametrsizli 
nostatik komponentli funksiya orqali qayta yuklanadi. Sinfdagi chaqiriladigan obyekt 
avtomatik ravishda operand sifatida qabul qilinadi. 
Sinf doirasidan tashqarida qayta yuklangan unar operatsiyalar (global funksiya 
kabi) sinf tipdagi bitta parametrga ega bo‘lishi lozim. Shu parametr orqali 
uzatiladigan obyekt operand sifatida qabul qilinadi.
Sintaksis: 
a) birinchi holda (sinf doirasida tavsiflash): 
 operator  
b) ikkinchi holda (sinf doirasidan tashqari tavsiflash): 
 operator
(


80 
9.4. Inkrement va dekrement amallarini qo‘shimcha yuklash 
C ++ tilining zamonaviy versiyalarida prefiks ++ va -- operatsiyalarni qo‘shimcha 
yuklash boshqa operatsiyalarni yuklashdan fark qilmaydi, Postfiks shakldagi ++va -- 
amallarini kayta yuklaganda yana bir int tipidagi parametr kiritilishi kerak.Agar 
qo‘shimcha yuklash uchun global funksiya ishlatilsa uning birinchi parametri sinf 
tipiga, ikkkinchi parametri int tipiga ega bo‘lishi kerak. 
Dasturda postfiks ifoda ishlatilganda butun parametr ham qiymatga ega bo‘ladi. 
Quyida postfiks va prefiks ++ va – amallari uchun funksiya – amallarga 
misollar keltirilgan. 
Misol: 
complex &complex::operator++() // prefiks uchun komponenta 
{ re++; return *this;}
complex &complex::operator--(int k) // postfiks uchun komponenta 
{ re--; return *this;}
complex &operator++(complex& a) // prefiks uchun do‘stona 
{ a.re++; return a;}
complex &operator++(complex& a, int k) // postfiks uchun do‘stona
{ a.re++; return a;}

Download 1.96 Mb.

Do'stlaringiz bilan baham:
1   ...   44   45   46   47   48   49   50   51   ...   83




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling