Re: Проясните еще раз с pure virtual call
От: Зверёк Харьковский  
Дата: 02.09.03 10:16
Оценка:
Здравствуйте, Дмитрий Наумов, Вы писали:


ДН>
ДН>class B
ДН>{
ДН>public:
ДН>  void DoSomethingBeforeExit() { OnClose(); }
ДН>  virtual void OnClose() { ... }
ДН>};

ДН>class D
ДН>{
ДН>public:
ДН>  ~D() { DoSomethingBeforeExit(); }
ДН>  virtual void OnClose() { ... }
ДН>};
ДН>


ДН>Итак, теперь словами. Валидно ли вызвать виртуальную функцию (косвенно или напрямую) из деструктора дочернего объекта? Или более общий вопрос — когда разрушается (заполняется заглушками) таблица вирт. функций? При входе в деструктор?

ДН>Спасибо за то что ответили на юзаный-переюзанный вопрос.

Теоретицки, "все разрушается в том же порядке, в каком создавалось", т.е. таблица вирт. функций, будучи создана ДО входа в консруктор, будет. видимо, разрушена ПОСЛЕ выхода из деструктора.
FAQ — це мiй ай-кью!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.