Здравствуйте Tom, Вы писали:
Tom>>VC++ 6.0 при создании класса автоматически генерирует виртуальные деструкторы.
Tom>>Для этого явно есть веская причина. Предпологаю, что это связано с явным вызовом
Tom>>деструкторов. Если есть идеи — ответьте.
Все просто, если деструктор не виртуальный возникнут утечки памяти, и еще неизвестно чего, ведь в наследнике может быть и различная инициализация.
Пример
class A
{
public:
virtual ~A()
{
printf("Delete A");
}
};
class B:public A
{
char * pszString;
public:
B(){ pszString = new char[100];}
virtual ~B()
{
delete [] pszString;
printf("Delete B");
}
};
....
A *pA = new B();
delete pA; // вызовится ~B