Mavzu: polimorfizm va uning turlari


Virtual va novirtual funksiyalar


Download 44.24 Kb.
bet3/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

Virtual va novirtual funksiyalar 
Quyidagi misol, ko‘rsatkich orqali chaqirilganda virtual va novirtual
funksiyalar o‘zini qanday tutishi ko‘rsatilgan:
#include
class Tayanch 

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






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

Hosila hosila; 
Hosila * pHosila = &hosila; 
Tayanch * pTayanch = &hosila; 
// Hosila sinfidan Virtual_Fun() funksiyasini chaqirish 
pTayanch->Virtual_Fun(); 
//Tayanch sinfidan NoVirtual_Fun() funksiyasini chaqirish 
pTayanch->NoVirtual_Fun(); 
// Hosila sinfidan Virtual_Fun() funksiyasini chaqirish
pHosila->Virtual_Fun(); 
// Hosila sinfidan NoVirtual_Fun() funksiyasini chaqirish 
pHosila->NoVirtual_Fun(); 
return 0; 

Dastur bajarilishi natijasida ekranga
Hosila::Virtual_Fun()
Tayanch::NoVirtual_Fun()



Hosila::Virtual_Fun()


Hosila::NoVirtual_Fun()
Shunga e’tibor berish kerakki, Virtual_Fun() funksiyasi qaysi sinfga -
Tayanch yoki Hosila ko‘rsatkich orqali chaqirilishidan qat’iy nazar Hosila sinfidan
Virtual_Fun() funksiyasi chaqiriladi. Bunga sabab -Virtual_Fun() funksiyasi virtual
va pTayanch hamda pHosila ko‘rsatkichlari Hosila turidagi obyektga ko‘rsatadi.
Ikkinchi tomondan, tayanch sinfga ko‘rsatkichi pTayanch garchi novirtual
funksiyalarga ega hosilaviy sinf obyektiga ko‘rsatsa ham, tayanch sinfdagi mos
funksiyani chaqiradi.
Ko‘rish sohasiga ruxsat berish operatori vositasida kechiktirilgan
bog‘lanishni man qilish mumkin:

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