Should objects delete themselves in C++?

You have made Update a virtual function, suggesting that derived classes may override the implementation of Update. This introduces two big risks. 1.) An overridden implementation may remember to do a World.Remove, but may forget the delete this. The memory is leaked. 2.) The overridden implementation calls the base-class Update, which does a delete this, … Read more