Создание собственного деструктора в классе

Деструктор объявляют как ~MyClass() без параметров и возвращаемого типа. Он вызывается при завершении времени жизни объекта и должен безопасно освобождать принадлежащие объекту ресурсы.

Короткий ответ

Что ответить на собеседовании

Деструктор объявляют как ~MyClass() без параметров и возвращаемого типа. Он вызывается при завершении времени жизни объекта и должен безопасно освобождать принадлежащие объекту ресурсы.

Подробный разбор

Ответ с пояснениями

Условие

Разработайте класс, в котором будет реализован пользовательский деструктор. Деструктор должен выполнять необходимые действия по освобождению ресурсов или выводить сообщение при удалении экземпляра объекта.

class MyClass {
public:
    ~MyClass();
};

Ответ

Деструктор объявляют как ~MyClass() без параметров и возвращаемого типа. Он вызывается при завершении времени жизни объекта и должен безопасно освобождать принадлежащие объекту ресурсы.

Простой вариант с диагностикой:

#include <cstdio>

class MyClass {
public:
    ~MyClass() noexcept;
};

MyClass::~MyClass() noexcept {
    std::puts("MyClass destroyed");
}

Для реального ресурса нужна соответствующая операция освобождения, а не только сообщение. Если членами уже владеют vector, string или unique_ptr, обычно достаточно автоматически созданного деструктора. Не освобождайте ресурс дважды и не выпускайте исключения из очистки.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее