13 – ma’ruza mavzu: polimorfizm va uning turlari. Virtual funksiya. Abstrakt sinf va funksiyalar


Download 378.34 Kb.
Pdf ko'rish
bet4/8
Sana15.12.2022
Hajmi378.34 Kb.
#1007526
1   2   3   4   5   6   7   8
Bog'liq
9y9byPXmkU5D8noFIWuv6TGva5udl9pc4QtcMYrC

#include  
class Tayanch 

 public: 
virtual void Virtual_Fun(){cout<<"Tayanch::Virtual_Fun()\n";} 
}; 
class Hosila: public Tayanch 

 public: 
virtual void Virtual_Fun(){cout<<"Hosila::Virtual_Fun()\n";} 
}; 
int main() 



Tayanch * pTayanch =new Hosila; 
 // Hosila sinfidan Virtual_Fun() funksiyasini chaqirish 
 pTayanch->Virtual_Fun(); 
 //Tayanch sinfidan Virtual_Fun() funksiyasini chaqirish
 pTayanch->Tayanch::Virtual_Fun(); 
 return 0; 

Dastur ekranga 
Hosila::Virtual_Fun() 
Tayanch::Virtual_Fun() 
xabarlarini chop etadi. 
Ko‘rinibturibdiki,
pTayanch->Tayanch::Virtual_Fun(); 
ko‘rsatmasi kechiktirilgan bog‘lanishni yo‘qqa chiqaradi. 
Sinflar shajarasida virtual funksiyalar nomi bilan bir xil qayta yuklanuvchi 
funksiyalarni e’lon qilish mumkin. Lekin, bunday novirtual funksiyalar yashiringan 
bo‘ladi.
Yuqoridagi fikrlarni tasdiqlaydigan misol keltiramiz: 
#include  
#include  
class Tayanch 

 public: 


Tayanch(char * nom){strcpy(Nom,nom);} 
virtual void Fun(char c) 

cout<<"Virtual "<

protected: 
char Nom[20]; 
}; 

Download 378.34 Kb.

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




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