Деструктор

Деструктор (от destruct — разрушать) — особый метод класса, противоположный конструктору, срабатывающий во время уничтожения объектов класса. Чаще всего его роль заключается в том, чтобы освободить динамическую память, которую выделял конструктор для объекта. Имя его, как и у конструктора, должно соответствовать имени класса. Только перед именем надо добавить символ "~".



Пример

#include <iostream>

using namespace std;

class Base {
String name;

public:
Base() { cout <<"Construct Base object\n"; } //конструктор без параметров

Base(String name) {
    cout <<"Construct Base object\n"; //конструктор с параметрами
    this->name = name;
}

~Base() { cout << "Destruct Base object\n"; } //деструктор
}

int main(int argc, char *argv[])
{
    String name;
    cin >> name;

    Base obj1; //создание объекта с помощью первого конструктора
    obj1->~Base(); //принудительный вызов деструктора
    Base obj2(name); //создание объекта с помощью второго конструктора

// объект obj2 будет уничтожен ввиду неявного вызова деструктора

    return 0;
}
Comments