Для того чтобы упростить процесс присваивания исходных данных при работе с классами, в C++ часто используется специальная функция, называемая конструктором. Конструктор имеет такое же имя, как и класс, и описывается в программе так же, как и любая другая функция (метод) класса. После того как в программе описан конструктор, в операторе объявления объекта допускается присваивание начальных значений. Помимо инициализации элементов- данных объекта, он осуществляет выделение динамической памяти под данные.
Деструктор — это специальная функция C++ без параметров, обеспечивающая уничтожение объекта (освобождение памяти) в процессе выполнения программы. Деструктор имеет такое же имя, как и класс, начинающееся с символа тильда (~). Деструктор описывается в программе так же, как и любая другая функция (метод) класса. Применение деструкторов целесообразно при создании динамических списков, которые увеличиваются или уменьшаются в процессе выполнения программы.
Области памяти, занятые данными базовых типов (int, float и т. д.) выделяются автоматически и не нуждаются в помощи конструктора и деструктора.
Пример
Объявляется класс для строковых объектов. Конструктор с помощью оператора newрезервирует блок памяти для указателя stringl. освобождение занятой памяти выполняет деструктор с помощью оператора delete.
В результате решения этой программы на экран дисплея будет выведено:
Оклад Худанина Н.М.: 2000 рублей. Деструктор уничтожил объект.
Таким образом, присваивание начальных значений в программе осуществлено с помощью конструктора zp, a уничтожение объекта выполнено с помощью деструктора ~zp.