русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Деструктори


Дата додавання: 2014-11-28; переглядів: 797.


Динамічне виділення пам'яті для об'єкта створює необхідність звільнення|визволення| цієї пам'яті під час знищення об'єкта. Наприклад, якщо об'єкт формується як локальний усередині блока, то доцільно, щоб під час виходу з|із| блока, коли вже об'єкт перестає існувати, виділена для нього пам'ять була повернена. Бажано, щоб звільнення|визволення| пам'яті відбувалося|походило| автоматично. Таку можливість|спроможність| забезпечує спеціальний компонент класу – деструктор класу. Його формат:

~ім’я_класу(){ оператори_тіла_деструктора}

Ім'я деструктора співпадає|збігається| з|із| ім'ям його класу, але|та| передує символом “~” (тильда).

Деструктор не має параметрів і не повертає ніякого значення. Виклик

деструктора виконується неявно (автоматично), як тільки об'єкт класу знищується.

Наприклад, під час виходу за область визначення або під час виклику оператора delete для покажчика на об'єкт:

string *p=new string (“рядок”);

delete p;

Якщо у класі деструктор не визначено явно, то компілятор генерує деструктор за умовчанням, який просто звільняє|визволяє| пам'ять, зайняту|позичену,посісти| даними об'єкта. У тих випадках, коли потрібно виконати звільнення|визволення| й інших об'єктів пам'яті, наприклад область, на яку вказує|вказує| ch в об'єкті string, необхідно визначити деструктор явно: ~string(){delete []ch;}

Так само, як і для конструктора, не може бути визначено покажчик на деструктор.


<== попередня лекція | наступна лекція ==>
Конструктор | Приклад виконання лабораторної роботи №6


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн