Добавил:
vvrstcnho
Рад, если кому-то помог
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные работы С++ (для ИВТ) / Готовые лабы С++ / Лаба6 / Laba 6 (5)
.cpp#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
