Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Деструкторлар






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

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

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

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

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

 

Бақ ылау сұ рақ тары:

1. Конструктор дегеніміз не?

2. Конструктордың қ андай тү рлері бар?

3. Деструктор қ андай қ ызмет атқ арады?

4. Конструктор мен деструктордың айырмашылығ ы неде?

Ә дебиеттер:

1. Павловская Т.А. С и С++. Программирование на языке высокого уровня.

2. Г.С. Иванова и др. ООП: Учебник для вузов, М., Изд-во МГТУ им.Баумана, 2003.- 368 с.

3. Бьерн Страуструп. Язык программирования С++. Третье издание. - М.: Изд. Бином, Невский Диалект, 1999.

4. Р. Лафоре. Объектно-ориентированное программирование в С++.4-е издание. Питер.2004






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.