Is it allowed to delete this;
if the delete-statement is the last statement that will be executed on that instance of the class? Of course I'm sure that the object represented by the this
-pointer is new
ly-created.
I'm thinking about something like this:
void SomeModule::doStuff()
{
// in the controller, "this" object of SomeModule is the "current module"
// now, if I want to switch over to a new Module, eg:
controller->setWorkingModule(new OtherModule());
// since the new "OtherModule" object will take the lead,
// I want to get rid of this "SomeModule" object:
delete this;
}
Can I do this?
The C++ FAQ Lite has a entry specifically for this
I think this quote sums it up nicely
As long as you're careful, it's OK for an object to commit suicide (delete this).