Деструктор — это специальная функция-элемент класса. Имя деструктора совпадает с именем класса, но перед ним ставится символ тильда (~). Это соглашение о наименовании появилось интуитивно, потому что, как мы увидим в последующих главах, операция тильда является поразрядной операцией дополнения, а по смыслу деструктор является дополнением конструктора.
Деструктор класса вызывается при уничтожении объекта — например, когда выполняемая программа покидает область действия, в которой был создан объект этого класса. На самом деле деструктор сам не уничтожает объект — он выполняет подготовку завершения перед тем, как система освобождает область памяти, в которой хранился объект, чтобы использовать ее для размещения новых объектов.
Деструктор не принимает никаких параметров и не возвращает никаких значений. Класс может иметь только один деструктор — перегрузка деструктора не разрешается.
Типичная ошибка программирования 6.7
Попытки передать аргументы деструктору, вернуть значения из деструктора или перегрузить деструктор.
Заметим, что представленные до сих пор классы не были обеспечены деструкторами. На самом деле, деструкторы редко используются с простыми классами. В главе 8 мы увидим, что деструкторы имеют смысл в классах, использующих динамическое распределение памяти под объекты (например, для массивов и строк). В главе 7, мы обсудим, как динамически распределять и перераспределять память.
Комментариев нет:
Отправить комментарий