Mavzu: polimorfizm va uning turlari


#include class Tayanch


Download 44.24 Kb.
bet4/7
Sana03.06.2024
Hajmi44.24 Kb.
#1855802
1   2   3   4   5   6   7
Bog'liq
13 – ma’ruza mavzu polimorfizm va uning turlari. Virtual funksi-fayllar.org

#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]; 
}; 
class Hosila1: public Tayanch
{
public:
Hosila1(char * nom):Tayanch(nom){}
void Fun(const char * s){cout<
qabul qildi.\n";}
void Fun(int n){cout<
qildi.\n";}
virtual void Fun(char c)
{
cout<<"Virtual "<
}
};
class Hosila11: public Hosila1
{








Download 44.24 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