Re: Для чего нужны виртуальные деструкторы.
От: OlegO Россия http://www.mediachase.ru
Дата: 26.11.01 11:54
Оценка: 6 (1)
Здравствуйте Tom, Вы писали:

Tom>VC++ 6.0 при создании класса автоматически генерирует виртуальные деструкторы.

Tom>Для этого явно есть веская причина. Предпологаю, что это связано с явным вызовом
Tom>деструкторов. Если есть идеи — ответьте.

Для того чтобы в не зависимости от того привел ты класс потомок к родителю или
вызывался деструктор потомка.

Пример

class A
{
public:
    virtual ~A()
    {
        printf("Delete A");
    }
};

class B:public A
{
public:
    virtual ~B()
    {
        printf("Delete B");
    }
};

....

B *pB = new B();
A *pA = (A*)pB;

delete A; // вызовится ~B
...
С уважением, OlegO.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.