O. X. Azamatov


Download 1.82 Mb.
Pdf ko'rish
bet59/119
Sana09.01.2022
Hajmi1.82 Mb.
#256439
1   ...   55   56   57   58   59   60   61   62   ...   119
Bog'liq
3072-Текст статьи-7829-1-10-20200908

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.82 Mb.

Do'stlaringiz bilan baham:
1   ...   55   56   57   58   59   60   61   62   ...   119




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