Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
(либо при выходе объекта за пределы своей области видимости, либо при уничтожении динамического объекта операцией delete).
Назначение – выполнение завершающих действий (напр., закрытие файлов, установка видеосистемы в исходное состояние, написание каких-либо фраз и т.д.)
Деструктор используется, например, если объект – локальный и ему динамически выделялась память, целесообразно, чтобы при выходе из блока, когда объект перестает существовать, память была возвращена системе. Желательно, чтобы память освобождалась автоматически, операцию освобождения памяти можно включить в деструктор.
Класс может иметь несколько конструкторов, но деструктор может быть только один.
Формат компонентной функции-деструктора
~ имя класса () { операторы тела деструктора};
1) Между тильдой и именем класса нет пробелов.
2) У деструктора нет типа результата даже void и нет параметров даже типа void.
3) Деструктор выполняется неявно, автоматически, как только объект уничтожается. Его, как правило, никогда не вызывают, но можно и вызывать явно, если он определен в классе
<имя объекта>. ~ <имя класса> ();
При этом объект будет продолжать существовать, только выполняться те действия, которые записаны в теле деструктора.
Рассмотрим класс Men, несущий в себе данные о возрасте и имени индивидуума.
Пусть в этом классе присутствуют и конструктор и деструктор.
В конструкторе кроме инициализирующих действий имеется еще вывод контрольной строки.
Деструктор пусть также содержит вывод другой контрольной строки.
class Men {
char* name;
Дата публикования: 2014-11-28; Прочитано: 265 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!