struct A {
int a;
A(){a=10;}
virtual ~A() {}
};
struct B : A {
int b;
B(){b=20;}
virtual ~B() {}
};
int main()
{
A * p = new B;
delete p;
return 0;
}
Деструктор B вызовется, как ему и полагается (т.к. виртуальный)
а вот будет ли освобождена память B таким удалением? Оператор delete тоже "виртуальный"? Или там вообще другие механизмы?
Чего-то туплю, и непонятно как проверить.