Kitob uchta qismdan iborat. "Strukturali dasturlash", "Obyektli-yo’nalishli dasturlash", "Standart kutubxonalar"



Download 333,2 Kb.
bet71/90
Sana10.07.2022
Hajmi333,2 Kb.
#770437
1   ...   67   68   69   70   71   72   73   74   ...   90
Bog'liq
C majmua

Kechki bog’lanish mexanizmi

Hech bo’lmaganda bitta virtual usulni o’z ichiga olgan har bir sinf (obyekt emas) uchun kompilyator har bir virtual usul uchun xotiradagi uning manzili yozilgan virtual usullar (vtbl) jadvalini yaratadi. Usullar manzillari jadvalda ularning sinflarda tavsiflanish tartibi bo’yicha joylashadi. Ixtiyoriy virtual usul manzili vtbl da shajara chegaralarida har bir sinf uchun bir xil siljishga ega.


Har bir obyekt vtbl ga yashirin qo’shimcha murojaat maydonini o’z ichiga oladi va vptr deb ataladi. U obyektni yaratishda konstruktor tomonidan to’ldiriladi (buning uchun kompilyator konstruktor tanasi boshiga mos ko’rsatmalarni qo’shadi).
Kompilyatsiya bosqichida virtual usullarga murojaatlar obyektning vptri orqali vtblga murojaatlar bilan almashtiriladi, bajarish bosqichida esa usulga murojaat paytida uning manzili jadvaldan tanlanadi. Shunday qilib, oddiy usul va funksiyalardan farqli virtual usul chaqirish jadvaldan usul manzilini olish qo’shimcha bosqichi orqali bajariladi. Bu biroz dastur bajarilishini sekinlashtiradi.
Xotirani dinamik obyektdan to’g’ri bo’shatishni kafolatlash uchun virtual destruktorlar yaratish tavsiya etiladi, chunki bu holda ixtiyoriy paytda obyektning haqiqiy tipiga mos destruktor tanlanishi mumkin. Destruktor size_t tipga ega obyekt o’lchovi delete amalini uzatadi. Agar yo’qotiluvchi obyekt hosilaviy bo’lsa va unda virtual destruktor aniqlanmagan bo’lsa, obyektning uzatiluvchi o’lchovi noto’g’ri bo’lishi mumkin.
Usulning virtual qilishning aniq qoidasi mavjud emas. Faqat hosilaviy sinflarda qayta aniqlanish ehtimoli bo’lgan usullarni virtual deb e’lon qilish tavsiyasini berish mumkin. Butun shajarada o’zgarmas bo’lib qoluvchi yoki hosila sinflari foydalanmaydigan usullarni virtual qilish ma’noga ega emas. Ikkinchi tomondan shajarani loyihalashda hamma vaqt ham bazaviy sinf qanday kengayishini (ayniqsa sinflar kutubxonalarini loyihalashda), usulni virtual deb e’lon qilish kengayishining uzviyligi va mumkinligini bashorat qilib bo’lmaydi.
Oxirgi mulohazani tushunish uchun faraz qilaylik draw usulini chaqirish obyektni siljitish usulidan amalga oshirilgan bo’lsin. Agar siljish usuli matni siljitilayotgan obyekt tipiga bog’liq bo’lmasa (chunki barcha obyektlarni siljitish prinsipi bir xil tasvirlash uchun esa konkret usul chaqiriladi), bu usulni hosila sinflarda qayta aniqlash zarur emas va u virtual bo’lmagan usul sifatida tavsiflanishi mumkin. Agar draw usuli virtual bo’lsa, siljish usuli qayta kompilyatsiyasiz ixtiyoriy hosila sinflar obyektlari bilan – hatto uni yozishda u haqda hech narsa ma’lum bo’lmaganlari bilan ham ishlasji mumkin.
Virtual mexanizm faqat obyektlarga ko’rsatgichlar yoki murojaatlardan foydalanilganda ishlatiladi. Ko’rsatgich yoki murojaat orqali aniqlangan va virtual usullarni o’z ichiga olgan obyekt ko’p shaklli (polimorf) deb ataladi. Bu holda polimorfizm ularga bitta murojaat yordamida har bir vaqt momentida ko’rsatgich murojaat qiladigan tipga bog’liq ravishda turli amallar bajarilishini bildiradi.



Download 333,2 Kb.

Do'stlaringiz bilan baham:
1   ...   67   68   69   70   71   72   73   74   ...   90




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