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