Kitob uchta qismdan iborat. "Strukturali dasturlash", "Obyektli-yo’nalishli dasturlash", "Standart kutubxonalar"


Sinflar elementlariga ko’rsatgichlar



Download 333,2 Kb.
bet66/90
Sana10.07.2022
Hajmi333,2 Kb.
#770437
1   ...   62   63   64   65   66   67   68   69   ...   90
Bog'liq
C majmua

Sinflar elementlariga ko’rsatgichlar

Sinflar elementlariga ko’rsatgichlar yordamida murojaat qilish mumkin. Buning uchun .* va ->* amallar aniqlangan. Maydon va usullarga ko’rsatgichlar turlicha aniqlanadi.


Sinf usuliga ko’rsatgich formati quyidagicha bo’ladi:
qaytarish_tip (sinf_nomi::*ko’rsatgich_nomi)(parametrlar);

Masalan, monstr sinfi usuliga ko’rsatgichi tavsifi:


int get_health() {return health;}
int get_ammo() {return ammo;}
(bu sinfning boshqa usullariga shu signature bilan ko’rsatgich yoziladi) va quyidagi ko’rinishga ega:
int (monstr:: *pget)();

Bu ko’rsatgichni funksiya parametric sifatida berish mumkin. Bu funksiyaga usul nomini berish imkoniyatini beradi:


void fun(int (monstr:: *pget)()){
(*this.*pget)(); // .* amali orqali funksiyani chaqirish
(this->*pget)(); // ->* amali orqali funksiyani chaqirish
}

Ko’rsatgichni konkret usulga manzilni olish amali yordamida sozlash mumkin:


// Ko’rsatgich qiymatini berish:
pget = & monstr::get_health;
monstr Vasia, *p;
p = new monstr;
// .* amali orqali funksiyani chaqirish:
int Vasin_health = (Vasia,*pget)();
// ->* amali orqali funksiyani chaqirish:
int p_health = (p->*pget)();

Quyida sinflar usullariga ko’rsatgichlardan foydalanish qoidalari sanab o’tilgan:



  • Usulga ko’rsatgichni faqat mos sarlavhaga ega bo’lgan usullar manzillari berishi mumkin.

  • Sinfning statistik usuliga ko’rsatgichni aniqlash mumkin emas.

  • Usulga ko’rsatgichni sinf elementi bo’lmagan oddiy funksiya ko’rsatgichiga almashtirish mumkin emas.

Oddiy funksiyalarga ko’rsatgichlar kabi usullarga ko’rsatgichlar nomi noma’lum bo’lgan usulni chaqirish zarurati paydo bo’lganda foydalaniladi. Lekin o’zgaruvchi yoki oddiy funksiyaga ko’rsatgichdan farqli usulga ko’rsatgich xotiraning ma’lum manziliga murojaat qilinmaydi. U massivdagi indeksga o’xshash, chunki siljishni beradi. Xotiradagi konkret manzil ma’lum obyektga ko’rsatgichli usulga ko’rsatgich bilan olinadi.


Sinf maydoniga ko’rsatgich:


ma'lumotlar_tipi(sinf_nomi:: *ko’rsatgich nomi);

Ko’rsatgich ta’rifiga uning В определение указателя можно включить его инициализацию в форме:


&sinf_nomi::maydon_nomi; // maydon public bo’lishi lozim

Agar health maydoni public kabi e’lon qilinishi mumkin bo’lganda unga ko’rsatgich ta’rifi quyidagi ko’rinishga ega:


int (monstr::*phealth) = &monstr::health;
cout << Vasia.*phealth; // .* amal orqali murojaat
cout << p->*phealth; // ->* amal orqali murojaat

Sinf maydonlariga ko’rsatgichlar oddiy ko’rsatgichlar emas – ularga qiymatlar berilganda ular xotiraning konkret manziliga murojaat qilmaydilar, chunki xotira sinflarga emas, sinflar obyektlarga ajratiladi.





Download 333,2 Kb.

Do'stlaringiz bilan baham:
1   ...   62   63   64   65   66   67   68   69   ...   90




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish