Полезные материалы по всему, что может быть полезно плюсовику/сишнику.
class A
{
public:
A() {}
~A(){}
};
class B: public A
{
public:
B():A(){}
~B(){}
};
int main(void)
{
A* a = new B();
delete a;
}
Поведение не определено, потому что деструктор A не является виртуальным.