> Прежде чем я буду что-то читать, давай договоримся что мы > имеем ввиду. > Под разрушением объекта я имел ввиду явный вызов > деструктора. Если ты не считаешь вызов деструктора > разрушением объекта, то мы не договоримся. Иначе, ты сам > сказал что никто не работает с разрушенными объектами.
вот что я писал:
this->~Child();
new (this) Parrent; // отношение как к куску памяти и ничего более. результат - вновь синициализированный объект в предложенном пространстве.
следующий код показывает работу с разрушенным объектом:
this->~Child();
this->m_SomeMeber; // ОПАСНО !!!!
насчет того что делает деструктор, должен он этого делать или нет просмотри
http://www.bugtraq.ru/cgi-bin/forum.cgi?type=sb&b=2&m=13571&id=31&cp=azPOqy9BYBYZc
---
пример 3)
а еще овъедини этот пример с первоначальным, и в первоначальном сделай такую феню - работа с РАЗРУШЕННЫМ объектом
т.е в классе Child :
public:
virtual void foo()
{ printf("Function called successful.\n");}
void Magic()
{
this->~Child();
PrintMsg();
foo(); // если детруктор ни хрена не изменил, этот код пройдет. так ли это, сам посмотри.
new (this) Parrent();
}
---
я постараюсь на этом просто закончить мое обсуждение. сорри, но не могу же я постоянно сидеть и придумывать примеры. у самого работы по горло.
всем спасибо, наслаждайтесь ;-))
=====
2 XR :
то что обещал уже в Москве. Ждем cb. Кстати, возможно я сам очень скоро появлюсь ;-)
destructor
|