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


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

// чақириш.
cout<<”N->x = ”<Qiymat_X()<
cout<<”N->y = ”<Qiymat_Y()<
return 0;
}
Программа бажарилганда, экранга қуйидаги сатрлар чоп этилади:
Ob’ect elementiga murojaat: N->x = 5
Ob’ect elementiga murojaat: N->y = 10
Компилятор томонидан “N->Qiymat_X()” кўрсатмасини
(N.operator->())->Qiymar_X()
кўринишида талқин қилиниши оператор функцияни қандай бажарили-шининг ички моҳиятини очиб беради.
new ва delete операторларини қайта юклаш
Хотирани динамик равишда ажратиш ва тозалаш вазифасини бажарувчи new ва delete операторлари бажарилганда мос равишда стандарт аниқланган operator new() (ёки operator new []() - массив учун қўлланилганда) ва operator delete() (ёки operator delete []() - массив учун қўлланилганда) махсус функциялари чақирилади.
Бундан кейин алоҳида зарурат бўлмаса, бу функцияларнинг массив варианти қаралмайди ва биттаси учун айтилган фикрлар иккинчиси учун ҳам ўринли деб ҳисобланади.
Умуман олганда, new ва delete операторлари икки хил вариантда қайта юкланиши мумкин:
::operator new() - глобал (стандарт);
::operator delete() - глобал (стандарт);
<синф номи>:: operator new() - синф функцияси;
<синф номи>:: operator delete() - синф функцияси.
Синфда аниқланган operator new() оператор функция синфнинг статик аъзоси бўлиб, у синф объектлари учун глобал ::operator new() функциясини яширади (беркитади).
Глобал ::operator new() – оператор функциянинг ўзи ҳам қайта юкланиши (синфдан ташқарида) ва қайта юкланувчи функцияларнинг турли прототипга эга бир нечта вариантлари бўлиши мумкин.
Фойдаланувчи томонидан аниқланадиган new операторнинг оператор функцияси void* қийматини қайтариши керак ва биринчи параметр сифатида size_t туридаги параметрга эга бўлиши керак. Охирги параметр «stddef.h» сарлавҳа файлида unsigned int кўринишида аниқ–ланган. new операторини қайта юклаш учун қуйидаги прототипдан фойдаланилади:

Download 0.58 Mb.

Do'stlaringiz bilan baham:
1   ...   44   45   46   47   48   49   50   51   ...   71




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