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


Download 1.96 Mb.
Pdf ko'rish
bet37/83
Sana08.11.2023
Hajmi1.96 Mb.
#1757524
1   ...   33   34   35   36   37   38   39   40   ...   83
Bog'liq
Obyektga yo`naltirilgan dasturlash tillari

6.4. This ko‘rsatkichi 
Agarda konkret obyektga ishlov berish uchun sinf a’zosi – funksiya chaqirilsa
unda shu funksiyaga obyektga belgilangan ko‘rsatkich avtomatik va ko‘rsatilmagan 
holda uzatiladi. Bu ko‘rsatqich this ismiga ega va x* this kabi har bir funksiya uchun 
ko‘rsatilmagan holda belgilanadi. Х sinfni ekvivalent ko‘rinishda shunday tavsiflash 
mumkin:
class x { 
int m; 
public: 
int readm() { return this->m; } 
}; 
A’zolarga murojaat etishda this dan foydalanish ortiqcha. Asosan this bevosita 
ko‘rsatkichlar bilan manipulyatsiya qilish uchun a’zo funksiyalarini yaratilishida 
foydalaniladi.
Har qaysi obyekt sinf maydonining o‘z nusxasiga ega. Sinf usuli xotirada bitta 
nusxada bo‘ladi va hamma obyektlar bilan birgalikda ishlatiladi. Shuning uchun 
usullarni maydonlar bilan ishini tashkil etishda chaqirilayotgan obyekt uchun 
ta’minlanishiga e’tibor berish kerak. Bu esa yashirin this parametrini funksiyaga 
o‘zatishni ta’minlaydi. this ko‘rsatkichi noaniq ravishda usulning ichkarisida 
foydalaniladi. Aniq holatda esa bu ko‘rsatkich usuldagi ko‘rsatkichni hisoblashda 


59 
(return this;) yoki chaqirilayotgan obyektga (return *this;) murojaatlarda qo‘llaniladi. 
Quyida this ko‘rsatkich uchun misol keltiramiz: 
monstr & the_best(monstr &M){ 
if( health >M.health) return nhis; 
return M; 
... monstr Vas1a(50). Super(200); 
//Best yangi obyekti Super maydoni qiymatlari bilan initsializiya qilinmoqda: 
monstr Best = Vasia.the_best(Super); 
this ko‘rsatkichini sinf usulning maydonini nomi formal parametrlar nomi bilan 
mos kelgan hollarda identifikatsiya qilishda qo‘llash mumkin. Identifikatsiyalashning 
boshqa usuli esa ko‘rinish sohasiga murojaat etishda qo‘llash mumkin: 
void curednt health. 1nt ammo){ 
this -> health += health; // this dan foydalanish 
monstr:: ammo += ammo; // :: amalidan foydalanish 

Download 1.96 Mb.

Do'stlaringiz bilan baham:
1   ...   33   34   35   36   37   38   39   40   ...   83




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