Thema: Delphi Destruktor überladen

Einzelnen Beitrag anzeigen

Majortomster

Registriert seit: 11. Mai 2005
27 Beiträge
 
#1

Destruktor überladen

  Alt 15. Jun 2005, 09:22
Hallo,

ich habe in meiner Klasse den Destruktor überladen, um darin Speicher wieder freizugeben(mit free), der in den Instanzen benutzt wird.
Jetzt ist mir folgendes aufgefallen:
Wenn ich eine Instanz dieser Klasse mit .Free() freigebe, dann scheint dieser Destruktor gar nicht aufgerufen zu werden - obwohl es heißt, dass Free() nachschaut ob das Objekt nil ist und wenn nicht dann den Destruktor aufruft.

Daraufhin dachte ich mir, ich muss dann auch free() überladen, um dort auf den Destruktor zu verweisen.
Ich tat dies, nach einer Prüfung, ob self <> nil ist.

Dadurch wird der Destruktor zwar aufgerufen, aber es zeigt sich der seltsame Effekt, dass eine Exception geworfen wird wenn ich zwei Mal in Folge auf das gleiche Objekt Free() anwende.

Weiß einer wie man das handhaben kann?

Gruß, T
  Mit Zitat antworten Zitat