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

Конструкторы и деструкторы

Класс может содержать любое количество функций - членов самого разнообразного назначения, но два типа функций занимают особое положение. Эти функции называются конструктором и деструктором.

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

В С++ для упрощения процесса инициализации объектов предусмотрена специальная функция, называемая конструктором.

Конструктор – это компонентная функция, вызываемая автоматически при создании объекта класса и выполняющая необходимые инициализирующие действия.

1) Основное назначение – инициализация объектов.

- инициализация данных класса - задание им начальных

значений программно или по умолчанию,

- открытие файлов,

- перевод видеосистемы в графический режим

- вывод сообщения,

- инициализация объектов вспомогательных классов и. т. д.

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

3) Функция-конструктор не может возвращать результат, даже тип void не

допустим.

4) Функция автоматически вызывается при определении объекта, или при размещении в памяти объекта с помощью операции new.

5) Формат определения конструктора в теле класса:

< имя класса> (список формальных параметров)

{ операторы тела конструктора }

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

class T {

public:

T (список параметров);

};

T::T(список параметров) { тело конструктора}

6) Как правило, конструкторы объявляются в открытой части класса

7) Конструктор может отсутствовать, при создании экземпляров класса

компилятор автоматически выделяет под них память, хотя в этом случае

данные не инициализируются, и будут содержать мусор.

8) В определении класса могут присутствовать несколько конструкторов.

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

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

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

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: