Добавил:
Рад, если кому-то помог Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
01.11.2025
Размер:
1.22 Кб
Скачать
#include <iostream>
#include <locale>
using namespace std;

class Base {
public:
    // Без виртуального деструктора:
    // ~Base() { cout << "Base деструктор" << endl; }
    
    // С виртуальным деструктором:
    virtual ~Base() { cout << "Base деструктор" << endl; }
};

class Derived : public Base {
    int* data;
public:
    Derived() { data = new int[100]; }
    ~Derived() { 
        delete[] data; 
        cout << "Derived деструктор" << endl; 
    }
};

int main() {
    setlocale(LC_ALL, "ru_RU.UTF-8");
    
    cout << "Без виртуального деструктора:" << endl;
    cout << "Будет вызван только Base деструктор -> утечка памяти" << endl;
    
    cout << "\nС виртуальным деструктором:" << endl;
    cout << "Будут вызваны оба деструктора -> память освобождена корректно" << endl;
    
    Base* obj = new Derived();
    delete obj; // Поведение зависит от виртуальности деструктора
    
    return 0;
}
Соседние файлы в папке Лаба6