Registriert seit: 17. Feb 2004
464 Beiträge
Delphi 7 Enterprise
|
Re: unsichtbare Klassen
19. Feb 2007, 21:13
Zitat von Hansa:
Warum soll jetzt da nochmals ein leerer Destructor per override auch noch überschrieben werden ?
Deshalb:
Zitat von IngoD7:
Zitat von Muetze1:
/EDIT: Wenn du das Override nicht angibst, dann erhälst du zum einen einen Hinweis/Warnung vom Compiler und zum anderen wird dein Destructor nie ausgeführt.
Das bedarf aber noch ein paar Erklärungen.
Er wird [...] nicht ausgeführt, wenn zum Freigeben von TMeinObjekt ein MeinObjekt.Free benutzt wird. Free ist von TObject geerbt und ruft eben nur den Destruktor destroy von TObject auf, wenn dessen Virtualität nicht Rechnung getragen wird in den abgeleiteten Klassen. Durch ein override würde MeinObjekt.Free den Destructor destroy von TMeinObjekt aufrufen. Daher sollten Destruktoren in der Regel immer ihren Ahnen per override überschreiben. Eben weil sonst ein Free den eigenen Destruktor nicht "erreichen" würde, sondern in TObject "hängenbleiben" würde.
[...]
Probiere es aus.
|
|
Zitat
|