Освобождение памяти при виртуальном деструкторе
От: a9000  
Дата: 13.07.18 20:19
Оценка:
Тупой вопрос.
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 тоже "виртуальный"? Или там вообще другие механизмы?
Чего-то туплю, и непонятно как проверить.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.