Здравствуйте, Дмитрий Наумов, Вы писали:
ДН>ДН>class B
ДН>{
ДН>public:
ДН> void DoSomethingBeforeExit() { OnClose(); }
ДН> virtual void OnClose() { ... }
ДН>};
ДН>class D
ДН>{
ДН>public:
ДН> ~D() { DoSomethingBeforeExit(); }
ДН> virtual void OnClose() { ... }
ДН>};
ДН>
ДН>Итак, теперь словами. Валидно ли вызвать виртуальную функцию (косвенно или напрямую) из деструктора дочернего объекта? Или более общий вопрос — когда разрушается (заполняется заглушками) таблица вирт. функций? При входе в деструктор?
ДН>Спасибо за то что ответили на юзаный-переюзанный вопрос.
Теоретицки, "все разрушается в том же порядке, в каком создавалось", т.е. таблица вирт. функций, будучи создана
ДО входа в консруктор, будет. видимо, разрушена
ПОСЛЕ выхода из деструктора.