Приветствую.
Во время освобождения памяти выделенной для класса Child, его деструктор не вызывается, хотя при выделении памяти, вызывается его конструтор.
Почему так?
Думаю этот код не нуждается в комментариях:
#include <iostream>
using namespace std;
class Parent
{
public:
Parent() {
cout << "Parent() called\n";
}
~Parent() {
cout << "~Parent() called\n";
}
};
class Child : public Parent
{
public:
Child() {
cout << "Child() called\n";
}
~Child() {
cout << "~Child() called\n";
}
};
int main()
{
Parent* ptr = new Child();
delete ptr;
}
Output:
Parent() called
Child() called
~Parent() called