ulidtko
09.08.2011 12:23 work
a2k 03:19:11 PM
знаешь как в с++ джважды вызвать деструктор одного объекта? 03:20:48 PM
max ulidtko 03:20:57 PM
НО ЗАЧЕМ
a2k 03:21:05 PM
:33333333333333333333333333
max ulidtko 03:21:17 PM
ну и да, как?
a2k 03:21:29 PM
да хуй его знает, но почему-то джважды вызывается =\
max ulidtko 03:21:35 PM
:D
потому что он его джва раза удаляет, не?
как?!
Obj*a = new A;
delete a;
delete a;
это double-free, выкинется runtime error аллокатором.
да хоть бесконечность раз, вызвав delete this в деструкторе
разве популярные реализации free() не делают проверку на не-вхождение указателя в кучу?
деструктор можно вызвать явно. а можно перегрузить operator delete() для своего класса, и вызывать его дважды там
а ты уверен, что в таком случае ты когда-нибудь дойдёшь до особождения памяти? сначала-то надо объект разрушить
Class obj;
obj.~Class();
obj.~Class();
так?
например. в случае размещающего new у тебя других вариантов и не будет, тащемта
кстати, вот это неплохая идея