Возможный дубликат:
Можно использовать delete для удаления текущего объекта?
Я только что видел код, в котором они сделали delete this;
в функции класса, я знаю, что это не лучший дизайн, но определено ли, что произойдет, скажем, что класс всегда является указателем откуда-то. Всегда ли он удаляется правильно?
class A
{
public:
void abort() { delete this; }
};
class B
{
void func() { A* a = new A; a->abort(); }
};