O‘zbekiston respublikasi oliy va o‘rta maxsus ta’lim vazirligi tоshkеnt dаvlаt iqtisоdiyot universitеti
Polimorfizm. Ko‘plik vorislik. Interfeyslar
Download 1.96 Mb. Pdf ko'rish
|
Obyektga yo`naltirilgan dasturlash tillari
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.96 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling