Vorislik – bu oyd ning asosiy ustunlaridan biridir. Vorislik sinflarda ierarxik ko’rinishdagi sinflanishni ta’minlaydi. C++ terminologiyasida: Asos sinf


Ma’lumotlarga murojaat turlari va vorislik



Download 34,36 Kb.
bet3/3
Sana29.12.2021
Hajmi34,36 Kb.
#77153
1   2   3
Bog'liq
2 5402561532536030091

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.


Asos sinf konstruktoriga qiymat jo’natish

Quyidagi forma orqali asos sinf konstruktoriga parametr orqali qiymat jo’natishimiz mumkin:

voris-sinf-konstruktori(arg-lar) : asos-sinf1(arg-lar),

asos-sinf2(arg-lar),

// ...

asos-sinfN(arg-lar)

{

// voris sinf konstruktor tanasi

}

Asos sinf konstruktoriga qiymat jo’natish

class base {

protected: int i;

public:


base(int x) { i=x; }

};

class derived: public base {



int j;

public:


derived(int x, int y): base(y) // Asos sinf konstruktorini chaqirish

{ j=x; }

void show() { cout << i << " " << j << "\n"; }

};

derived ob(3, 4);



ob.show(); // natija 4 3
Download 34,36 Kb.

Do'stlaringiz bilan baham:
1   2   3




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