Дәріс №5 Тақырыбы: Амалдарды қайта анықтау. Операторларды қайта жүктеу. Қарастырылатын сұрақтар


New және delete операторларын қайта анықтау



бет5/5
Дата08.02.2022
өлшемі76,5 Kb.
#131046
1   2   3   4   5
Байланысты:
D ris 5
Рахметулина ж. Б, 3 тапсырма, аза стан республикасыны білім жєне ылым министрлігі, Praktika 1, Лабораторная работа №2 (3), 12 test
6. New және delete операторларын қайта анықтау
Жадыны басқарудың балама нұсқаларын қамтамасыз ету үшін обьектіге динамикалық жадыны және сәйкесінше обьект массивтерін бөлуге new және new [ ] операторларының , сонымен қатар delete және оны босату үшін delete [] операцияларының өзіндік нұсқаларын анықтауға болады. Бұл функция-операторлар келесі ережелерге сай болуы тиіс:

  • Оларға класс типінің параметрлерін беру қажет емес;

  • new және new [ ] функцияларына бірінші параметр болып size_t типті обьектінің көлемі жіберілуі тиіс ( бұл sizeof операторымен қайтарылатын тип, ол тақырыптық файлда анықталады); шақырған кезде ол функцияларға түсініксіз түрде жіберіледі;

  • return сілтегішті өзге типтерге қайтарып тұрса да, олар void* мәнінің қайтарылатын типімен анықталуы керек;

  • delete операторы void қайтарымының типіне және void* типінің бірінші аргументіне ие болу керек;

  • Жадыны бөлу және босату оперторлары класстың статистикалық элементтері болып табылады.

Қайта анықталған операторлар әрекеті олармен жасырын түрде орындалатын әрекеттерге сай келуі тиіс. New операторы үшін бұл ол дұрыс мағынаны қайтаруы керек, нөлдік көлемдегі жадты бөлуге сұранысты корректілі түрде өңдеп және сұранысты орындау мүмкіншілігі болмаған кеэде шығарып тастап отыруды білдіреді. Delete операторы үшін нөлдік сілтегішті жою қауіпсізболуы керек екендігін ескерген жөн, сондықтан оператор ішінде сілтегішті нөлге және тепе-теңдік жағдайындағы кез-келген әрекеттің жоқ екендігіне тексеру жүргізу керек. Жадыны бөлудің және босатудың қалыпты операторлары класстың әрекет облысында қайта анықталғандармен бірге қолданылуы мүмкін ( көрінетін облысқа кіретін операторлар көмегімн : : (осы класс және өзгелері үшін де).



Достарыңызбен бөлісу:
1   2   3   4   5




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет