Sinflarda vorislik polimorfizm (dasturlash) Reja: Polimorfizm tushunchasi Virtual funksiyalar va ularning xususiyatlari Abstraktsinflar Virtual asos sinflar Polimorfizm nima? Polimorfizm - bu bitta interfeys, bir nechta metod. Ya'ni metodlarni overload yoki override ko'rinishidir. Polimorfizm ikki xil ko'rinishda namoyon bo'ladi compile time; run time; Virtual funksiya Virtual funksiya asos sinf a'zosi hisoblanadi va voris sinfda qayta bir xil parametr asosida e'lon qilinadi. virtual funksiya yaratish uchun, asos sinf ichida funksiya yaratilishi jarayonida virtual kalit so'zidan foydalaniladi. Asos sinfda virtual funksiya e'lon qilingan bo'lsa, voris sinfda ushbu funksiya qayta e'lon qilinishi mumkin va o'z xususiyatlaridan kelib chiqqan holda funksiya tanasi boshqacha yozilishi mumkin. Ushbu qayta e'lonqilingan funksiyaning barcha parametrlari asos sinfdagi funksiya parametrlari bilan bir xil bo'lishi lozim, misol uchun: funksiya qaytarish tipi, argumentlar soni va tipi. Quyidagi misolda vitual funksiyalar qanday e'lon qilinishi va undan foydalanish ko'rsatilgan. class base public: virtual void vfunc() cout vfunc(); derived2 sinf vfunc() virtual funksiyasi return 0; Dastur natijasi: Ushbu dasturga ko'ra, base sinfida vfunc( ) nomli virtual funksiya e'lon qilingan. Bu yerda ishlatilgan virtual kalit so'zi qolgan voris sinfdagi funksiyalar ishlashi uchun imkoniyat yaratadi. derived1 va derived2 voris sinflarda vfunc( ) funksiya uchun virtual kalit so'zini ishlatish shart emas. Demak, asos sinf ko'rsatkich obyekti (*p) voris sinf a'zolariga ya'ni funksiyalariga murojaat qila oladi, agar ushbu funksiya asos sinfda virtual deb e'lon qilingan bo'lsa Sinfning virtual atributlari vorisga o'tishi Asos sinfdan voris olinganda ushbu sinfdagi virtual funksiya ham vorislik xususiyatiga ega bo'ladi. Bu shuni bildiradiki, asos sinf virtual funksiyasi voris sinf uchun mavjud bo'lgani bilan birga, ushbu voris sinfdan yana voris olingan holda ham ushbu vertuallik xususiyati saqlanib qoladi. Ya'ni ushbu funksiya ikkinchi voris sinf uchun ham override qilinadi. Bu xususiyat bir nechta vorislikda ham saqlanib qoladi. Quyidagi misolda ko'ramiz: class base public: virtual void vfunc() cout ...

Joylangan
05 Jun 2024 | 18:18:00
Bo'lim
Informatika va AT
Fayl formati
zip → doc
Fayl hajmi
29.92 KB
Ko'rishlar soni
90 marta
Ko'chirishlar soni
4 marta
Virus yo'q.
VirusTotal da tekshirish
O'zgartirgan san'a:
29.03.2025 | 01:28
Arxiv ichida: doc
Joylangan
05 Jun 2024 [ 18:18 ]
Bo'lim
Informatika va AT
Fayl formati
zip → doc
Fayl hajmi
29.92 KB
Ko'rishlar soni
90 marta
Ko'chirishlar soni
4 marta
Virus yo'q.
VirusTotal da tekshirish
O'zgartirish kiritilgan:
29.03.2025 [ 01:28 ]
Arxiv ichida: doc