Объектно-ориентированное программирование
Уроки Открыть IDE
На главную
ООП • Урок 6

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

Как инициализировать объекты и освобождать ресурсы

Антипример: класс без конструктора

Представьте класс Animal с пятью свойствами:

Три объекта — 15 строк кода только на заполнение свойств. Код становится громоздким и однотипным. Должен быть способ оптимизировать этот процесс.

И он есть!

Конструктор — метод, вызываемый при создании объекта

Конструктор — это специальный метод, который автоматически срабатывает в момент создания объекта. Синтаксис: constructor, затем параметры, затем тело.

Для начала — конструктор, который просто выводит сообщение:

Создан новый объект Animal Создан новый объект Animal Создан новый объект Animal Создан новый объект Animal

Конструктор вызывается 4 раза — по числу созданных объектов.

Полезный конструктор

Добавим в класс Animal конструктор с параметрами — чтобы инициализировать свойства прямо при создании:

Инициализация трёх объектов сократилась с 18 строк до 3 строк! Код стал чище и понятнее.

Деструктор

Деструктор — это метод, который вызывается при уничтожении объекта. В Idyllium деструктор успешно срабатывает при удалении ячеек из динамического массива.

Синтаксис: destructor ~ИмяКласса().

Удаляем первый круг... Круг Круг_0 уничтожен Удаляем ещё один... Круг Круг_1 уничтожен

Деструктор позволяет выполнить cleanup-действия — закрыть файлы, освободить ресурсы или просто сообщить об удалении объекта.

Специальный метод to_string()

Если добавить в класс метод to_string(), объекты этого класса можно будет выводить в консоль напрямую:

Cat(Барсик) Cat(Мурка)

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

Итог

  • Конструктор — вызывается при создании объекта. Позволяет инициализировать свойства без лишнего кода.
  • Деструктор — вызывается при уничтожении объекта. Полезен для освобождения ресурсов.
  • to_string() — позволяет выводить объекты в консоль напрямую.