Деструктор

Деструктор, одна из двух основных функций каждого класса, наравне с конструктором. По функционалу деструктор диаметрально противоположен тому же конструктору, вызываясь при отмене выделения памяти на объект (при удалении объекта). Объявить функцию класса как деструктор просто, имя класса с тильдой (~) и пустыми скобками, например, ~MyClass() для класса MyClass. При объявлении деструктора нужно придерживаться нескольких правил:

  1. Деструктор ничего не возвращает по самой идее своего назначения, то есть присваивать ему тип (даже специальный тип void) или писать в теле функции return нельзя.
  2. Аналогичный запрет на ключи const, static и другие в объявлении. Деструктор хоть и освобождает объекты с такими ключами, но сам объявляться с ними не должен.
  3. Деструктор не должен иметь каких-либо параметров.

Приведем простой пример класса и его деструктора.

В примере конструктор класса выделяет память на  text1 и text2, а деструктор эту память освобождает. Освобождение внутри класса происходит обратно выделению памяти, то есть если сначала память выделили на text1, а потом на text2, то освобождение начнется с text2.

Опубликовано

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Капча загружается...