delete this
-
Hi.
Wie sieht es
delete this;aus? Können hierbei Probleme auftreten? Schlechter Stil?
Das Objekt wird nur in einer einzigen Funktion referenziert und diese wird vor dem delete sauber beendet.
In dem Scope in dem das Objekt erzeugt wird, kann ich es leider nicht löschen, deswegen erzeuge ich es mit new.
Grüße
-
da dir klar ist, daß du nach delete nicht mehr auf das objekt zugreifen darfst:
null problemo.
-
Icematix schrieb:
Schlechter Stil?
Gut möglich. Könntest du dein Problem mit etwas Code verdeutlichen? Vielleicht gibt es eine bessere Alternative.
-
Nexus schrieb:
Icematix schrieb:
Schlechter Stil?
Gut möglich. Könntest du dein Problem mit etwas Code verdeutlichen? Vielleicht gibt es eine bessere Alternative.
Ich denke nicht, dass es ähnlich knappe Möglichkeiten gibt.
Es ist eben so, dass das Objekt die alleinige Kontrolle hat, es gäbe sonst keinen Code der ein delete aufrufen könnte. (Es ist ein Automatisierungsprogramm, das in einem fremden Prozess per Hook in einem fremden Thread arbeitet).
-
Klassischer Anwendungsfall für "delete this": Reference-Counting.
-
Ich habe das mal verwendet, um einen Logger, der als Singelton Realisiert war, neu zu instantiieren. Das war aber nur als Beispiel gedacht, wie man so etwas lösen kann (Singleton neu einrichten). IMHO gibt es dazu aber immer eine schönere Alternative (ohne delete this)
-
gastgast schrieb:
IMHO gibt es dazu aber immer eine schönere Alternative (ohne delete this)
Ja, kann sein. Meistens wissen die Besitzer auch bescheid. Beo refcounten zum Beispiel kann der refcounting smart pointer das ganz genauso machen. Bei dem Spiel müssen tote Mobs eh aus der moblist raus, da kann man auch den bool iAmDead auf true setzen und sich in der Putzrunde löschen lassen.