8-ma'ruza. Dasturlash tilida sinflar. Do’stona funksiyalar. Inkapsulyasiya. Meroshorlik. Polimorfizm. Virtual funksiyalar. Amallar va usullarni qayta ishlash va qayta aniqlash Reja


Ma’lumotlarga murojaat turlari va vorislik



Download 67,17 Kb.
bet3/7
Sana14.07.2022
Hajmi67,17 Kb.
#795298
1   2   3   4   5   6   7
Bog'liq
8-maruza

Ma’lumotlarga murojaat turlari va vorislik

Murojaat turlari

public

protected

private

Asos sinf

yes

yes

yes

Voris sinf

yes

yes

no

Boshqa sinf (yoki main funksiya)

yes

no

no

private murojaat turi orqali voris sinfni yaratishga misol.


class base {
int i, j;
public:
void set(int a, int b) { i=a; j=b; }
void show() { cout << i << " " << j << "\n";}
};
// asos sinfning public a’zolari, voris sinfda private huquqiga o’tadi.
class derived : private base {….}
int main()
{
derived ob(3);
ob.set(1, 2); // error, set() metodiga ruxsat yo’q
ob.show(); // error, show() metodiga ruxsat yo’q
return 0;
}
Vorislik va sinfning himoyalangan (protected) a’zolari\

  • Protected kalit so’zi vorislik mexanizmini tashkil qilish uchun ishlatiladi va qulaylik vujudga keltiradi.

  • Asos sinfning private a’zolariga dasturning boshqa bir qismi (misol uchun boshqa sinf yoki main() funksiyasi) yoki voris sinf tomonidan to’g’ridan to’g’ri murojaat mavjud emas

  • Lekin asos sinfning protected a’zolari, boshqa sinf yoki main() funksiya uchun yopiq bo’ganiga qaramasdan, voris sinf tomonidan murojaat mavjuddir.

Asos sinfning protected a’zolari
class base {
protected:
int i, j; // asos sinf uchun private, lekin voris sinf uchun ochiq
public:
void set(int a, int b) { i=a; j=b; }
void show() { cout << i << " " << j << "\n"; }
};
class derived : public base {
int k;
public:
void setk() { k=i*j; } // i va j voris sinf uchun ochiq
void showk() { cout << k << "\n"; }
};
int main()
{
derived ob;
ob.set(2, 3); // OK, voris sinf uchun ochiq, chunki public
ob.show(); // OK, voris sinf uchun ochiq, chunki public
ob.setk(); ob.showk(); // voris sinf metodi, murojaat turi public, demak ochiq
return 0;
}
Voris olish turlari
// public (umumiy) vorislik
class derived1: public Base{…};
// private (xususiy) vorislik
class derived2: private Base{….};
// protected (himoyalangan) vorislik
class derived3: protected Base{….};
// default (oddiy-xususiy) vorislik 
class derived4: Base{….};

  • Public vorislik: 

    • Bunda asos sinfning public a’zolari voris sinfning ham public a’zolari va asos sinfning protected a’zolari voris sinfning protected a’zolariga aylanadi.

    • Lekin asos sinfning private a’zolari voris sinf uchun yopiqligicha qoladi.

  • Protected vorislik: 

    • Bunda asos sinfning public va protected a’zolari voris sinf uchun protected a’zo bo’lib o’tadi.

  • Private vorislik: 

    • Bunda asos sinfning public va protected a’zolari voris sinfning private a’zosiga ayanadi.


Download 67,17 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




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