Объектга йўналтирилган программалаш


Download 0.58 Mb.
bet55/71
Sana08.05.2023
Hajmi0.58 Mb.
#1444224
TuriПрограмма
1   ...   51   52   53   54   55   56   57   58   ...   71
Bog'liq
С ОЙП

{
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 синфидан Virtual_Fun() функциясини чақириш
pTayanch->Virtual_Fun();
//Tayanch синфидан NoVirtual_Fun() функциясини чақириш
pTayanch->NoVirtual_Fun();
//Hosila синфидан Virtual_Fun() функциясини чақириш
pHosila->Virtual_Fun();
//Hosila синфидан NoVirtual_Fun() функциясини чақириш
pHosila->NoVirtual_Fun();
return 0;
}
Программа бажарилиши натижасида экранга
Hosila::Virtual_Fun()
Tayanch::NoVirtual_Fun()
Hosila::Virtual_Fun()
Hosila::NoVirtual_Fun()
Шунга эътибор бериш керакки, Virtual_Fun() функцияси қайси синфга – Tayanch ёки Hosila кўрсаткич орқали чақирилишидан қатъий назар Hosila синфидан Virtual_Fun() функцияси чақирилади. Бунга сабаб, Virtual_Fun() функцияси виртуал функция ва pTayanch ва pHosila кўрсаткичлари Hosila туридаги объектга кўрсатади. Иккинчи томондан, таянч синфга кўрсаткич pTayanch, гарчи новиртуал функцияларга эга ҳосилавий синф объектига кўрсатса ҳам, таянч синфдаги мос функцияни чақиради.
Кўриш соҳасига рухсат бериш оператори (::) воситасида кечиктирилган боғланишни ман қилиш мумкин:
#include

Download 0.58 Mb.

Do'stlaringiz bilan baham:
1   ...   51   52   53   54   55   56   57   58   ...   71




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