Virtual metodlar virtual funktsiya



Download 53,2 Kb.
bet1/2
Sana08.01.2022
Hajmi53,2 Kb.
#333721
  1   2
Bog'liq
Virtual metodlar


Virtual metodlar

Virtual metodlar   ( virtual funktsiya )   - In   ob'ektga asoslangan dasturlash   usul (funktsiya)   sinfda qayta belgilanadigan sinf   voris klasslari   shuning uchun chaqiruv usulining aniq bajarilishi ish vaqtida aniqlanadi.Shunday qilib, dasturchiga aniq turni bilish shart emas   ob'ekt   virtual metodlarlar bilan u bilan ishlash: siz ob'ektni sinfga yoki usul e'lon qilingan sinfning merosiga tegishli ekanligini bilishingiz kerak. " Virtual " so'ziningingliz tilidan tarjimalaridan biri "haqiqiy" bo'lishi mumkin, bu ma'noga ko'ra to'g'ri keladi.

Foydalanish

Virtual metodlarlar   - eng muhim amaliy usullardan biri   polimorfizm . Ular taglik sinfi ob'ektlari bilan, shuningdek, uning avlodlari sinflarining predmetlari bilan ishlaydigan umumiy kodni yaratishga imkon beradi. Shu bilan birga, asosiy sinf ob'ektlar bilan ishlashning yo'lini belgilaydi va uning avlodlaridan har biri ushbu usulni aniq amalga oshirishi mumkin.

Ajratish usuli

Ba'zi dasturlash tillari (masalan,   C ++ ,   C # ) bu usulning virtual ekanligini aniq ko'rsatib turishni talab qiladi. Boshqa tillarda (masalan,   Java ,   Python ) barcha usullar sukut bo'yicha virtualdir (faqatgina bu mumkin bo'lgan usullar , masalan, kirish usulida Java usullarida   xususiy   ko'rinishi uchun qoidalar tufayli bekor qilinmaydi).

Asosiy sinf virtual metodlarni amalga oshirishni ta'minlamasligi mumkin, faqat uning mavjudligini e'lon qilishi mumkin. Amalga oshirilmaydigan bunday usullar "sof virtual" deb nomlanadi (tarjima   Ingliz tili   sof virtual ) yoki mavhum. Eng kamida bitta usulni o'z ichiga olgan sinf ham bo'ladi   mavhum . Bunday sinfning ob'ekti yaratilmaydi (ba'zi tillarda ruxsat beriladi, lekin abstrakt usulni chaqirish xatolikka olib keladi). Abstrakt sinfning merosxo'rlari barcha mavhum uslublar uchun amaliyotni amalga oshirishi kerak, aks holda ular o'z navbatida mavhum sinflar bo'ladi. Faqat mavhum usullarni o'z ichiga olgan mavhum bir sinfga chaqiriladi   interfeys .

Dastur


Virtual metodlarlarni chaqirish usuli "dinamik majburiy" deb ataladi. Bu shuni anglatadiki, dasturda ishlatiladigan metodning nomi ma'lum bir usulning kirish manziliga dinamik ravishda (ish vaqti bo'yicha) statik (kompilyatsiya vaqtida) emas, chunki kompilyatsiya vaqtida, odatda, mavjud bo'lgan usullarni qo'llash taklif etiladi.

Qilingan dasturlash tillarida dinamik ulanish odatda ishlatiladi   virtual uslub jadvali , har bir sinf uchun derleyici tomonidan yaratilgan, kamida bitta virtual metodlari mavjud. Jadval elementlari ushbu sinfga to'g'ri keladigan virtual metodlari qo'llanmalariga nisbatan markerni o'z ichiga oladi (agar yangi virtual metodlar uskuna sinfiga qo'shilsa, uning manzili jadvalga qo'shiladi, agar virtual uslubning yangi ilovasi descendant sinfida yaratilgan bo'lsa, jadvaldagi tegishli maydon ushbu dasturning manzili bilan to'ldiriladi) . Shunday qilib, meros daraxti bo'yicha har bir virtual metodlarning manzili uchun virtual uslub jadvali ichida bir xil sobit ofset mavjud. Har bir ob'ekt ob'ekt yaratilganda boshlanadigan texnik maydonga ega.   ko'rsatgich   uning klassidagi virtual uslublar jadvalida. Ob'ektdan virtual metodlarni chaqirish uchun, mos keluvchi virtual uslub jadvali uchun ko'rsatgich olinadi va u erdan ma'lum bir qattiq ofset orqali,   - bu sinf uchun ishlatiladigan usulni qo'llash bo'yicha ko'rsatgich. Foydalanishda   virtual uslub jadvali chiziqli bo'lmaganligi sababli bir nechta meros holatini biroz murakkablashtiradi.

C ++ da virtual funktsiyaning misoli

Hayvonlar guruhining diagrammasi

Misol uchun   Virtual va virtual bo'lmagan funksiyalar o'rtasidagi farqni ko'rsatadigan C ++ :

Asosiy sinfni nazarda tuting   Hayvon   (hayvon) virtual metodlarga ega bo'lishi mumkin   ovqatlaning   (mavjud). Subclass (bolalar sinf)   Baliq   (Baliq) bekor qilish usuli   ovqat ( )   u subclass tomonidan qayta belgilanmaganidek emas   Kurt   (bo'ri), lekin qo'ng'iroq qilishingiz mumkin   ovqat ()   sinf har bir misolni sinf Animal meros va xatti olish   Ushbu subclassga mos keladigan ovqatni () kiriting .

Bu dasturchi sinf moslamalarni ro'yxatini ishlashga imkon beradi.   Hayvon , har bir ob'ekt usulini chaqiradi   (Muayyan ozuqa sifatida, ya'ni) kichik sinfiga joriy ob'ektga tegishli nima haqida o'ylab emas,) (eb.

C ++ da virtual funktsiyalarning qiziqarli tafsiloti xulq-atvor   sukut argumentlari . Virtual funktsiyani sukut argumenti bilan chaqirsangiz, funktsiya tanasi haqiqiy ob'ektdan va argument qiymatlari turiga qarab olinadi  ishoratlar   yoki ko'rsatgich.




Download 53,2 Kb.

Do'stlaringiz bilan baham:
  1   2




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