Я наберу пример:
class A
{
public:
virtual ~A(){}
};
class B: public A
{
public:
~B()
{
}
};
int main(void)
{
A * a = new B;
delete a;
return 0;
}
Теперь в примере выше деструкторы будут называться рекурсивно снизу вверх. Мой вопрос заключается в том, как компилятор выполняет этот MAGIC.