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



Download 333,2 Kb.
bet61/90
Sana10.07.2022
Hajmi333,2 Kb.
#770437
1   ...   57   58   59   60   61   62   63   64   ...   90
Bog'liq
C majmua

Statik usullar

Statik usullar sinf statik maydonlarga murojaat qilish uchun mo’ljallangan. Ular bevosita statik maydonlarga murojaat qilishi mumkin va faqat sinfning boshqa statik usullarini chaqirishi mumkin, chunki ularga yashirin ko’rsatgich this uzatilmaydi. Statik usullarga murojaat statik maydonlarga murojaat kabi yi sinf nomi, yoki agar sinfning hech bo’lmaganda bitta obyekti yaratilgan bo’lsa, obyekt nomi orqali amalga oshiriladi.


class А{


static int count; // count - yashirin maydon
public:
static void inc_count(){ count++; }

};

A::int count; // Global sohadagi ta’rif
void f(){
А а;
// a.count++ - mumkin emas, count yashirin maydon
// Statik usul yordamida nomni o’zgartirish;
a.inc_count(); // yoki А::inc_count();
}

Statik usullar konstant (const) va virtual (virtual) bo’lishlari mumkin emas.




Do’stona funksiyalar va sinflar

Ba’zida sinfning yashirin maydonlariga bevosita kirish, ya’ni sinf interfeysini kengaytirish zarur bo’ladi. Buning uchun do’stona funksiyalar va do’stona sinflar xizmat qiladi.




Do’stona funksiya

Do’stona funksiya sinf yashirin maydonlariga kirish uchun qo’llaniladi va usullarga muqobil hisoblanadi. Usul odatda obyekt xossasini amalga oshirish uchun qo’llaniladi, do’stona funksiya ko’rinishida sinf xossalarini taqdim etmaydigan, lekin uning interfeysiga kiruvchi va uning yashirin maydonlariga kirishga muhtoj, masalan, obyektlarni chiqarishning ortiqcha aniqlangan amallari rasmiylashtiriladi.


Quyida do’stona funksiyaning tavsiflash qoidalari va xususiyatlari sanab o’tilgan:

  • Do’stona funksiya elementlari friend tayanch so’zi bilan kirish zarur bo’lgan sinf ichida e’lon qilinadi. Unga parametr sifatida obyekt yoki sinfning obyektga murojaat berilishi lozim, chunki this ko’rsatgich unga berilmaydi.

  • Do’stona funksiya boshqa oldin aniqlangan sinfning oddiy funksiyasi yoki usuli bo’lishi mumkin. Unda kirish spetsifikatori amal qilmaydi. Uning sinfda e’lon qilinish joyining farqi yo’q.

  • Bitta funksiya birdaniga bir nechta sinfga do’stona bo’lishi mumkin.

Misol sifatida quyida monstr sinfiga do’stona ikkita funksiya tavsifi keltirilgan. kill funksiyadi hero sinfi usuli hisoblanadi, steal_ammo funksiyasi hech bir sinfga tegishli emas. Ikkala funksiyaga parametr sifatida monstr sinfi obyektiga murojaat beriladi.

class monstr; // Sinfning dastlabki e’loni


class hero{
public:
void kill(monstr &);

};
class monstr{

friend int steal_ammo(monstr &);
friend void hero::kill(monstr &);
// hero sinfi oldin aniqlanishi lozim
};
int steal_ammo(monstr &M){return --M.ammo; }
void hero::kill(monstr &M){M.health = 0; M.ammo = 0;}

Do’stona funksiyalardan foydalanishni imkoniboricha qochish lozim, chunki ular inkapsulyatsiya prinsipini buzadi va shuning uchun dasturlarni sozlash va takomillashtirishni qiyinlashtiradi.





Download 333,2 Kb.

Do'stlaringiz bilan baham:
1   ...   57   58   59   60   61   62   63   64   ...   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