Возможный дубликат:
С++: Удалить это?
Объектно-ориентированное самоубийство или удалить это;
Интересно, безопасно ли приведенный ниже код:
#include <iostream>
using namespace std;
class A
{
public:
A() {
cout << "Constructor" << endl;
}
~A() {
cout << "Destructor" << endl;
}
void deleteMe() {
delete this;
cout << "I was deleted" << endl;
}
};
int main()
{
A *a = new A();
a->deleteMe();
cout << "Exit ...";
return 0;
}
Выход:
Constructor
Destructor
I was deleted
Exit ...
и нормально выходить из программы, но есть ли здесь некоторые нарушения доступа к памяти?