O. X. Azamatov


 Polimorfizm. Ko‘plik vorislik. Interfeyslar



Download 1,82 Mb.
Pdf ko'rish
bet69/119
Sana19.07.2021
Hajmi1,82 Mb.
#123208
1   ...   65   66   67   68   69   70   71   72   ...   119
Bog'liq
3072-Текст статьи-7829-1-10-20200908

 
8.5. Polimorfizm. Ko‘plik vorislik. Interfeyslar 
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 


74 
 
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  konstruksiya  A 
sinfning  elementi  xa  ga  murojat  qilishni  ta’minlaydi.  Pastda  sinflarni  tasvirlashda 
qabul qilingan bazalar ishlab chiqilgan. Хuddi 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, 
class X1 { ... }; 
class X2 { ... }; 
class X3 { ... }; 
class Y1: public X1, public X2, public X3 { ... }; 
Bir  necha  to‘g‘ri  baza  sinflari  mavjud  bo‘lib,  ular  ko‘plik  vorislari  deb 
nomlanadi. 
Ko‘plik vorislarida ketma-ket bazada hech qanday sinf bittadan ortiq ishlatilishi 
mumkin  emas.  Bitta  sinf  to‘g‘ri  bo‘lmagan  sinfda  bir  necha  marta  ishlatilishi 
mumkin: 
class X { ...; f () ;  ... }; 
class Y: public X { ... }; 
class Z: public X { ... }; 
       class D: public Y, public Z { ... }; 
Bu  misolda  Х  sinf  D  sinfning  ikki  marta  o‘rtacha  vorisi  bo‘ladi.  Bizning 
misolimizda ikkita qiymati qatnashadi, va shuning uchun bir qiymatli bo‘lmagan  D 
sinfning  obyekti  Х  sinfning  aniq  komponentiga  murojat  qulayligini  bartaraf  qilish 
kerak,  uni  to‘liq  kvalifikatsiyasi  D::Y::X::f()  yoki  D::Z::X::f().  D  sinfning  obyekti 
ichida  sodda  ko‘rinish  Y::X::f()  yoki  Z::X::f(),  lekin  bu  ham  kvalifikatsiyani 
mazmunidir. 
Bir  xil  nOYDagi  obyektlarni  bartaraf  qilishda  to‘g‘ri  bo‘lmagan  sinf  bazalari 
ko‘plik  vorislari,  bu  sinf  bazalari  virtual  deb  e’lon  qilinadi.  Buning  uchun  sinf 
bazalari  ro‘yxatida  oldingi  sinf  nomini  virtual  kalit  so‘zini  ishlatish  kerak.  Misol 
uchun Х sinfi  virtual baza sinfi bo‘la oladi bunaqa ko‘rinishda yozilganda: 


75 
 
class X { ... f() ; ... }; 
class Y: virtual public X { ... }; 
class Z: virtual public X { ... }; 
       class D: public Y,  public Z { ... };  
Endi D sinf Х dan faqat bitta nusxada bo‘ladi, ruxsat etilgan to‘g‘ri tenglikdan Y 
va Z sinflarini ifodalaydi. 

Download 1,82 Mb.

Do'stlaringiz bilan baham:
1   ...   65   66   67   68   69   70   71   72   ...   119




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