#include
void func(int i)
{
cout<<"Global e`lon qilingan funcsiya: "<
}
void func(char * s)
{
cout<<"Lokal e`lon qilingan funcsiya: "<
}
int main()
{
void func(char *); // функциянинг локал эълони
func(100); //компиляция хатоси рўй беради,
//чунки блокда функция қайта аниқланган
func("Qayta aniqlsh ro’y berdi!"); // ўринли
return 0;
}
Қайта юкланувчи функция – аъзолар турли хил мурожаат спецификатори билан эълон қилинган бўлиши мумкин. Улар битта кўриниш соҳасига эга (синф ичида) ва шу сабабли улар компилятор томонидан битта функция деб қаралиб қайта юкланади.
#include
class Sinf
{
public:
void Sinf_Azosi(double, char *);
void Qayta_Yuklash_1();
void Qayta_Yuklash_2();
private:
void Sinf_Azosi(int);
};
void Sinf::Sinf_Azosi(double d, char *s)
{
cout<<" double= "<
}
void Sinf::Sinf_Azosi(int i)
{
cout<<" int= "<
}
void Sinf::Qayta_Yuklash_1()
{
Sinf_Azosi(10.5,"Qayta yuklash!");
}
void Sinf::Qayta_Yuklash_2()
{
Sinf_Azosi(10);
}
int main()
{
Sinf sinf;
sinf.Sinf_Azosi(100);//хато,private–функция чақирилмоқда
sinf.Sinf_Azosi(12.5,"Satr qiymat"); // ўринли
// қайта юклашни кўрсатиш
sinf.Qayta_Yuklash_1();
sinf.Qayta_Yuklash_2();
return 0;
}
Амалда синфнинг статик функция – аъзоларини ҳам қайта юклаш мумкин, лекин бу ишдан мазмуний самарага эришиб бўлмайди.
Do'stlaringiz bilan baham: |