Funktioniert ein delete this
-
Ich hab eine Klasse die nur dynamisch erzeugt werden kann, also mit new.
Jetzt soll diese Klasse irgendwann natürlich wieder gelöscht werden, funktioniert es wenn ich der Klasse sage das sie sich löschen soll und sie sich dann selber mit delete this löscht?
Also so ungefähr.class IchLöschMichSelber{ ... public: void NunLöschIchMich(){ delete this; }; ... }; int main(){ IchLöschMichSelber* ILMS = new IchLöschMichSelber; //Ist das folgende gleichbedeutend mit "delete ILMS"? ILMS->NunLöschIchMich(); return 0; };Solange ich immer NunLöschIchMich() aufrufe müsste es doch eigentlich funktionieren, oder?
Viele Grüße floorball
-
Ja, es "funktioniert", solange danach garantiert auf keine Member mehr zugegriffen wird.
Eine gute Idee ist das aber selten bis nie.Edit: dazu gibt es auch einen FAQ-Eintrag:
http://www.parashift.com/c++-faq-lite/delete-this.html
-
danke für die antwort
Eine gute Idee ist das aber selten bis nie.
So richtig zufrieden bin ich damit auch nicht, werd wohl mal nach einer anderen Lösung suchen