Вызывает ли деструктор явное уничтожение объекта полностью?
Если я вызываю деструктор явным образом (myObject. ~ Object ()), гарантирует ли это, что объект будет надлежащим образом уничтожен (вызывая все дочерние деструкторы)?
Хорошо, некоторый код:
<code>class Object { virtual ~Object() {} }; class Widget : public Object { virtual ~Widget() {} }; ... Object* aWidget = new Widget(); //allocate and construct aWidget->~Object(); //destroy and DON'T deallocate </code>
Я знаю, что могу просто удалить объект, но не хочу. Я хочу сохранить выделенную память под рукой в качестве важной оптимизации.
Спасибо!