Дістемелік кешен



бет15/112
Дата22.12.2021
өлшемі0,85 Mb.
#127596
түріПрограмма
1   ...   11   12   13   14   15   16   17   18   ...   112
Байланысты:
ооп лекция
қорытынды атт 11.03.21, қорытынды атт 11.03.21, эссеге керек
Деструкторлар

Деструкторлар деп - өшірілген объекті орын алатын динамикалық жадыны босату үшін қызмет ететін тағыда бір арнайы функция- мүшелер айтылады.

Деструктор да конструтор сияқты префикс ретінде тильда ( ~ ) белгісі бар класс атын ұстанады. Деструктор бағдарламада класс объектісіне сілтегіші бар delete операторы кездескенде және объект өзінің көзге көрінетін обылыстан тыс шығып кеткен кезде автоматты түрде шақырылады. Конструкторлардан ерекшелігі Деструкторлар ешқандай аргументтерді қабылдамайды. Және қайта жүктеуі мүмкін емес. Егер деструктор түсінікті берілмесе, компилятор класқа қарапайым деструкторын ұсынады.

Егер объектіні құруда конструктор қолданылса, бағдарлама бұл объектіге жүктелген міндетін орындамайынша бағдарлама оны бақылап отырады. Осы кезде бағдарлама деструктор барлық қалған «қоқысты» жою керек, осылайша ол деструктор да , таза конструкторлық міндеттерді орындайды. Мысалы, егер сіздің конструктор жадыны бөлу үшін new спецификаторын қолданса, деструтор delete операторының көмегімен жадыны босатады. Stock конструторы ешқандай ерекше әрекет жасамайды, мысалы, New спецификаторын қолданбайды, сондықтан оған деструктор керек емес. Алайда ең болмаса кластың кейінгі тексерістері үшін мұндай функцияның болғаны жаман болмас еді.

Деструктордан қашан көмек сұраған жөн? Бұл шешімді компилятор қабылдайды, сіздің бағдарламалық кодыңызда деструкторға айқын қаратпалар болмауы керек. Егер сіз статикалық класс жады бар объект жасап жатсаңыз, онда оның деструкторы бағдарламаны орындау соңында автоматты түрде шақырылады. Егер сіз автоматты класс жады бар жасап жатсаңыз, онда оның дестркуторы бағдарлама объект анықталған бағдарламаның код блогынан шыққан кезде автоматты түрде шақырылады. Егер объект new спецификаторын қолдану арқылы құрылса, ол жадының динамикалық бөлінетін обылысында немесе бос жадыда орналасады, ал оның деструкторы жадыны босату үшін delete операторын қолдану қажет болған кезде автоматты түрде уақытша объектілерді құруы мүмкін; бұл жағдайда бағдаралама объектіні қолданып болған кезде оны – жою үшін автоматты түрде деструкторды шақырады.

Класс объетісі қызмет етіп болған кезде деструктор автоматты түрде шақырылатындықтан, деструктор әрқашан дайын тұруы керек. Егер сіз өзіңіздің деструкторыңызды қарастырып қоймасаңыз, компилятор үндемей берілетін ешқандай әрекет орындалмайтын деструкторды ұсынады.



Достарыңызбен бөлісу:
1   ...   11   12   13   14   15   16   17   18   ...   112




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

    Басты бет