• 15.07.2025, 04:43
  • Registrieren
  • Anmelden
  • Sie sind nicht angemeldet.

 

Eumel

God

[C++] Selbstzerstörung eines Objektes

Samstag, 16. April 2005, 13:04

Hi!

Kann ich in der Methode eines Objektes dessen Selbstzerstöung veranlassen?

MfG
"I've always said, the Web is the sum of all human knowledge plus porn.", Ron Gilbert
UltraStar Manager 1.7.2 | Infos zu meinem PC | .o0 DeathSpank 0o.

pharao

Moderator

Re: [C++] Selbstzerstörung eines Objektes

Samstag, 16. April 2005, 13:50

indem du den destruktor aufrufst.
aber wenn nach der ausführung des Destruktors noch weiterer Code in der Methode steht, isses schlecht. (ist ja dann weg, das Objekt).

also solltest du das nur in Methoden machen, die keinen Rückgabewert haben (void).

ist aber ganz hässlicher Stil, was hast'n vor?

ich hatte so was ähnliches (aber eher unbeabsichtigt) in dem Menü-System, an dem ich gerade schreibe und habe mich über die Abstürze in meinem System gewundert... lag daran, daß ich zum System gesagt habe: zeig den nächsten Menüscreen und das System dann automatisch einen neuen Screen erstellt hat und mich weggeräumt hat.. ich habe aber nach dieser Anweisung an das Game versucht noch Code auszuführen, war halt ganz schlecht.
pass auf was du da tust  ;)

edit:
oder einfach:
delete this;


edit2:
while((void*)this != NULL)
   delete this;
;D ;D ;D


edit3:
Nachtrag:
wenn du noch irgendwo einen Pointer auf das Objekt hast, und dann versuchst darauf zuzugreifen, wird's haarig... ausserdem solltest du nicht versuchen diesen Pointer wieder zu löschen, das geht auch schief.
Gute work-live-balance ist, wenn man von seinem Privatleben erschöpfter ist als von der Arbeit.

Eumel

God

Re: [C++] Selbstzerstörung eines Objektes

Sonntag, 17. April 2005, 01:04

Uhhh.... das klingt derbst unsauber ;D

Ich brauch aber keine Selbstzerstörung mehr - hab's anders gelöst :D

Is auch schade, dass ein gelöschter Pointer nicht genullt wird :) Najo, man muss halt überall aufpassen.

Trotzdem danke!

MfG
"I've always said, the Web is the sum of all human knowledge plus porn.", Ron Gilbert
UltraStar Manager 1.7.2 | Infos zu meinem PC | .o0 DeathSpank 0o.