46. На что распространяются действия конструктора и деструктора класса?
Конструктор
инициализирует объект при его создании.
Он имеет такое же имя, что и сам класс,
и синтаксически подобен функции. Однако
в определении конструкторов не указывается
тип возвращаемого значения. Формат
записи конструктора такой: имя_класса
() { // код конструктора } Обычно конструктор
используется, чтобы придать переменным
экземпляра, определенным в классе,
начальные значения или выполнить
исходные действия, необходимые для
создания полностью сформированного
объекта. Дополнением к конструктору
служит деструктор. Во многих случаях
при разрушении объекту необходимо
выполнить некоторое действие или даже
некоторую последовательность действий.
Локальные объекты создаются, при входе
в блок, в котором они определены, и
разрушаются при выходе из него. Глобальные
объекты разрушаются при завершении
программы. Существует множество факторов,
обусловливающих необходимость
деструктора. Например, объект должен
освободить ранее выделенную для него
память или закрыть ранее открытый для
него файл. В C++ именно деструктору
поручается обработка процесса
дезактивизации объекта. Имя деструктора
совпадает с именем конструктора, но
предваряется символом "~". Подобно
конструкторам деструкторы не возвращают
значений, а следовательно, в их объявлениях
отсутствует тип возвращаемого значения.