Aliyev o. A, Xo‘jamuratov b. «C++ da dasturlash» fanidan tajriba ishlarini bajarish bo‘yicha uslubiy ko‘rsatma


Download 2.01 Mb.
bet19/27
Sana20.11.2023
Hajmi2.01 Mb.
#1787789
1   ...   15   16   17   18   19   20   21   22   ...   27
Bog'liq
file8

class B { protected: int t;
public: char u;
};
unda quyidagi xosila sinflarni kiritish mumkin:
class M: protected B { ... }; //t, va u protected sifatida merosxo’r
class P: public B { ... }; //protected, va u- public sifatida merosxo’r
class D: private B { ... }; //t, va u private sifatida merosxo’r
struct F: private B { ... }; //t, i u private sifatida merosxo’r
struct G: public B { ... }; t - protected, va u – public sifatida merosxo’r
Konstruktor va destruktorlarda vorislik
Konstruktorlar meros bo’lmagani uchun, xosila sinfni yaratishda undan meros bo’lgan ma’lumot – a’zolari asosiy (bazaviy) sinf konstruktori orqali initsializatsiyalanishi lozim. Asosiy sinf konstruktori avtomatik ravishda chaqiriladi va xosila sinfni konstruktoridan oldin bajariladi. Asosiy (bazaviy) sinfni konstruktorining parametrlari xosila sinfni konstruktorni aniqlashda ko’rsatiladi. Shunday qilib argumentlarni xosila sinfni konstruktoridan asosiy (bazaviy) sinfni konstruktoriga uzatish vazifasi bajariladi.
Masalan.
class Basis
{ int a,b;
public:
Basis(int x,int y){aqx;bqy;}
};
class Inherit:public Basis
{int sum;
public:
Inherit(int x,int y, int s):Basis(x,y){sum=s;}
};
Sinf obyektlari pasdan tepaga qarab konstruktorlanadi: avvalo asosiy(bazaviy), keyin esa kopmonent – obyektlar (agarda ular mavjud bo’lsa), undan keyin esa xosila sinfning o’zi. Shunday qilib, xosila sinfning obyekti quyi obyekt sifatida asosiy (bazaviy) sinf obyektini o’z ichiga oladi.
Ob’ektlar teskari tartibda o’chiriladi: avvalo xosila, keyin uning komponent – obyektlari, undan keyin esa asosiy(bazaviy) obyekt.
Shunday qilib obyektni o’chirish tartibi uning konstruktorlash tartibiga nisbatan teskari bo’ladi.
Ko’plikdagi vorislik va virtual sinflar
Bu sinf ketma-ket(to’g’ri-to’g’ri) baza sinfi, agar u sinflarni aniqlashda baza ro’yxatidan chiqadi.Agar ba’zi hollarda A sinf V sinfning bazasini ifodalasa va S uchun V baza bor, unda V sinf S uchun to’g’ridan-to’g’ri bazasi hisoblanadi, A sinf esa S sinf uchun to’g’ri bo’lmagan baza bo’lib g’isoblanadi. xa komponentiga murojat qilganda A sinfga kiruvchi va V va S sinflarga izchil tarzida voris bo’ladi,S sinfga A::xa tarzida, V::xa tarzida e’lon qilish mumkin. Ikkala konstruktsiya A sinfning elementi xa ga murojat qilishni ta’minlaydi. Pastda sinflarni tasvirlashda qabul qilingan bazalar ishlab chiqilgan. Xuddi shu tartibda ularni kompilyator e’lon qilishini ko’ramiz va ularni teksti dasturda joylashadi.
Sinflar bir nechta ketma-ket sinflardan tashkil topishi mumkin, sinf bazasida ixtiyoriy son yo’qolishi mumkin, misol uchun,

Download 2.01 Mb.

Do'stlaringiz bilan baham:
1   ...   15   16   17   18   19   20   21   22   ...   27




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