Антипример: класс без конструктора
Представьте класс Animal с пятью свойствами:
Три объекта — 15 строк кода только на заполнение свойств. Код становится громоздким и однотипным. Должен быть способ оптимизировать этот процесс.
И он есть!
Конструктор — метод, вызываемый при создании объекта
Конструктор — это специальный метод, который автоматически срабатывает в момент создания объекта. Синтаксис: constructor, затем параметры, затем тело.
Для начала — конструктор, который просто выводит сообщение:
Конструктор вызывается 4 раза — по числу созданных объектов.
Полезный конструктор
Добавим в класс Animal конструктор с параметрами — чтобы инициализировать свойства прямо при создании:
Инициализация трёх объектов сократилась с 18 строк до 3 строк! Код стал чище и понятнее.
Деструктор
Деструктор — это метод, который вызывается при уничтожении объекта. В Idyllium деструктор успешно срабатывает при удалении ячеек из динамического массива.
Синтаксис: destructor ~ИмяКласса().
Деструктор позволяет выполнить cleanup-действия — закрыть файлы, освободить ресурсы или просто сообщить об удалении объекта.
Специальный метод to_string()
Если добавить в класс метод to_string(), объекты этого класса можно будет выводить в консоль напрямую:
Метод to_string() вызывается автоматически, когда объект нужно представить в виде строки (например, при выводе в консоль или при конкатенации).
Итог
- Конструктор — вызывается при создании объекта. Позволяет инициализировать свойства без лишнего кода.
- Деструктор — вызывается при уничтожении объекта. Полезен для освобождения ресурсов.
- to_string() — позволяет выводить объекты в консоль напрямую.