Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Деструктор - это функция, которая автоматически выполняется, когда экземпляр класса уничтожается



(либо при выходе объекта за пределы своей области видимости, либо при уничтожении динамического объекта операцией delete).

Назначение – выполнение завершающих действий (напр., закрытие файлов, установка видеосистемы в исходное состояние, написание каких-либо фраз и т.д.)

Деструктор используется, например, если объект – локальный и ему динамически выделялась память, целесообразно, чтобы при выходе из блока, когда объект перестает существовать, память была возвращена системе. Желательно, чтобы память освобождалась автоматически, операцию освобождения памяти можно включить в деструктор.

Класс может иметь несколько конструкторов, но деструктор может быть только один.

Формат компонентной функции-деструктора

~ имя класса () { операторы тела деструктора};

1) Между тильдой и именем класса нет пробелов.

2) У деструктора нет типа результата даже void и нет параметров даже типа void.

3) Деструктор выполняется неявно, автоматически, как только объект уничтожается. Его, как правило, никогда не вызывают, но можно и вызывать явно, если он определен в классе

<имя объекта>. ~ <имя класса> ();

При этом объект будет продолжать существовать, только выполняться те действия, которые записаны в теле деструктора.

Рассмотрим класс Men, несущий в себе данные о возрасте и имени индивидуума.

Пусть в этом классе присутствуют и конструктор и деструктор.

В конструкторе кроме инициализирующих действий имеется еще вывод контрольной строки.

Деструктор пусть также содержит вывод другой контрольной строки.

class Men {

char* name;





Дата публикования: 2014-11-28; Прочитано: 265 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...