Virtual bazaviy sinflar


Download 143.71 Kb.
bet4/5
Sana09.04.2023
Hajmi143.71 Kb.
#1347011
1   2   3   4   5
Bog'liq
mustaqil Ish

VIRTUAL FUNKSIYALAR
Obyektga Mo’ljallangan Dasturlashda polimorfizmga virtuallash vositasida ham erishiladiki, u ajdod funksiyalarga o’z avlodlari funksiyalariga murojaat qilish imkonini beradi. Polimorfizm sinf arxitekturasi orqali ishga tushiriladi, biroq faqat a’zo-funksiyalar polimorf bo’lishlari mumkin.


C++ da virtual funksiya nima?
C++ tilidagi virtual funksiya - bu polimorfizmga erishish uchun hosila sinfida qayta belgilashingiz mumkin bo'lgan asosiy sinf a'zosi funksiyasi. Funktsiyani virtual kalit so'z yordamida asosiy sinfda e'lon qilishingiz mumkin. Funktsiyani asosiy sinfda e'lon qilganingizdan so'ng, virtual sinfga murojaat qilish va olingan sinfda uning virtual versiyasini bajarish uchun ko'rsatgich yoki havoladan foydalanishingiz mumkin. Shunday qilib, u kompilyatordan ish vaqtida ob'ekt turini aniqlashni va funktsiyani bog'lashni (kech bog'lash yoki dinamik ulanish) yaratishni so'raydi.


C++ tilidagi virtual funksiya mos yozuvlar yoki koʻrsatkich orqali toʻgʻri funksiyani chaqirishingizga yordam beradi. C++ dasturlash tili barcha olingan sinf ob'ektlariga murojaat qilish uchun faqat bitta ko'rsatgichdan foydalanish imkonini beradi. Ko'rsatkich barcha olingan ob'ektlarga tegishli bo'lganligi sababli, uni chaqirish asosiy sinfdagi funktsiyani doimiy ravishda bajaradi. Siz bu qiyinchilikni C++ tilidagi virtual funksiya yordamida yengishingiz mumkin, chunki u ishga tushirish vaqtida bajariladigan olingan sinfning virtual versiyasini bajarishga yordam beradi.


C++ da virtual funktsiya qoidalari qanday?


C++ da virtual funksiya yaratish uchun bir nechta qoidalarga amal qilishingiz kerak. Bu qoidalar:


1. Funktsiyalar statik bo'lishi mumkin emas
2. Siz ularni "virtual" kalit so'zidan foydalanib olasiz
3. C++ tilidagi virtual funksiyalar boshqa sinf (asosiy sinf) aʼzosi boʻlishi kerak.
Ular boshqa sinfning do'st funktsiyasi bo'lishi mumkin
4. Bu funksiyalarning prototipi ham asosiy, ham hosila sinf uchun bir xil bo'lishi
kerak
5. Virtual funktsiyalarga ob'ekt ko'rsatkichlari yordamida kirish mumkin
6. Olingan sinfda virtual funktsiyani qayta belgilash ixtiyoriy, lekin uni asosiy
sinfda aniqlash kerak
7. Funktsiya chaqiruvini hal qilish ish vaqtida amalga oshiriladi
8. Siz virtual destruktor yaratishingiz mumkin, lekin konstruktor emas.



Download 143.71 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5




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