Axborot tеxnologiyalari kafеdrasi kurs ishi «dasturlash tillari» fanidan kurs ishi mavzu: Ichki sinflardan foydalanish virtual metodlardan foydalanish


Download 103.39 Kb.
bet3/7
Sana12.03.2023
Hajmi103.39 Kb.
#1262629
1   2   3   4   5   6   7
Bog'liq
Xusanova Muniraxon

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 << "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:
void vfunc() {
cout << "This is derived2's vfunc().\n";
}
};
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
p = &d1;
p->vfunc(); // derived1 sinf vfunc() virtual funksiyasi
// derived2 sinfga ko’rsatkich
p = &d2;
p->vfunc(); // derived2 sinf vfunc() virtual funksiyasi
return 0;
}
Dastur natijasi:

• Ushbu dasturga ko’ra, base sinfida vfunc( ) nomli virtual funksiya e’lon qilingan.
Bu еrda 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

Download 103.39 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




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