- 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’lon qilingan funksiyaning barcha parametrlari asos sinfdagi funksiya parametrlari bilan bir xil bo’lishi lozim, misol uchun: funksiya qaytarish tipi, argumentlar soni va tipi
- Asos sinfda virtual funksiya yaratilgan va bu voris sinf uchun override qilinishi mumkin.
- Agar voris sinfda mazkur virtual funksiya override qilinmagan bo’lsa nima bo’ladi?
- Bunda voris sinf obyekti virtual funksiyaga murojaat qiladi, ya’ni asos sinf virtual funksiyasiga.
- Quyida misol keltirilgan:
Misol class base { public: virtual void vfunc() { cout << "This is base's vfunc().\n"; } }; class derived1 : public base { public: void vfunc() { cout << "This is derived1's vfunc().\n"; } }; class derived2 : public base { public: }; davomi… int main() { base *p, b; derived1 d1; derived2 d2; // base sinfga ko’rsatkich p = &b; p->vfunc(); // base sinf vfunc() virtual funksiyasi // derived1 sinfga ko’rsatkich
Do'stlaringiz bilan baham: |