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


Download 0.58 Mb.
bet50/71
Sana08.05.2023
Hajmi0.58 Mb.
#1444224
TuriПрограмма
1   ...   46   47   48   49   50   51   52   53   ...   71
Bog'liq
С ОЙП

#include
// Глобал new операторини қайта аниқлаш
void* operator new(size_t size)
{
cout<<”Xotiradan “<
cout<<” bayt ajratishga so’rov bo’ldi\n”;
return malloc(size);
}
void operator delete(void *p)
{
cout<<”Xotirani bo’shatish!\n”;
free(p);
}
// Глобал new операторини қайта юклаш
void* operator new(size_t size, char * fname, int line)
{
cout<
cout<
return malloc(size);
}
int main()
{
char fayl_nomi[]=”new_quyk.cpp”;
int qator=5;
// Глобал new операторини чақириш
long * pInt = new long;
// Глобал delete операторини чақириш
delete pInt;
// Қайта юкланган new операторини чақириш
pInt = new(fayl_nomi, qator) long;
// Глобал delete операторини чақириш
delete pInt;
return 0;
}
Программа ишлаши натижасида экранга қуйидаги сатрлар чоп этилади:
Xotiradan 4 bayt ajratishga so'rov bo'ldi
Xotira bo'shatildi!
new_quyk.cpp faylining 5-qatorida
4 bayt ajratishga so'rov bo'ldi!
Xotira bo'shatildi!
Навбатдаги мисолда new операторининг жойлашувчи шаклидан фойдаланиш кўрсатилган.
#include
// Глобал new операторини қайта аниқлаш
void* operator new(size_t sizeб void * krst)
{
cout<<”Ob’ekt ko’rstatilgan adresga joylandi\n”;
return krst;
}
void Tizimni_tekshirish()
{
cout<<”Tizim normal ishlaypti!\n”;

Download 0.58 Mb.

Do'stlaringiz bilan baham:
1   ...   46   47   48   49   50   51   52   53   ...   71




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