Inherited destroy Problem
Hallo,
ich habe mir eine Basisklasse im Wesentlichen wie folgt definiert (aufs Wesentliche reduziert):
Delphi-Quellcode:
Darauf baut eine Klasse
type
TMCExport = class public destructor Destroy ; virtual ; end ; implementation destructor TMCExport.Destroy; begin CloseExportFile ; // erst mal unwichtig, was hier drin steht. Ein textfile soll hier nur geschlossen werden inherited Destroy ; end;
Delphi-Quellcode:
mit irgendwelchen klassenspezifischen Funktionen.
type
TMCExport_Radial = class (TMCExport) end ; var Radial : TMCExport_Radial ; Radial wird wie gehabt über Create erzeugt. Klappt auch alles soweit. Der Constructor ist in TMCExport definiert, und wird auch wie gewollt aufgerufen. Durch Radial.free gebe ich meine Klasse wieder frei. Jetzt sagt mir meine Logik, daß da der Destructor destroy aus TMCExport aufgerufen werden soll... Tut er aber nicht. Was mach ich da falsch? |
Re: Inherited destroy Problem
Hi,
müsste es hinter dem Destroy der Basisklasse nicht override heißen (es ist ja bereits in TObject virtuell)? mfG mirage228 |
Re: Inherited destroy Problem
Danke mirage, jetzt klappts... Aber verstanden hab ichs nicht. Den Konstructor hab ich doch auch virtual deklariert, und der wird aber aufgerufen... Ich dacht, bei free wird automatisch der Destructor aufgerufen.
|
Re: Inherited destroy Problem
Zitat:
liegt vllt. daran, dass der Konstruktur vorher nicht als virtual deklariert wurde (in TObject) :gruebel: mfG mirage228 |
Re: Inherited destroy Problem
Ja, kann sein. Den constructor kann ich auch nicht überschreiben, da der wohl in TObject nicht als virtual deklariert ist. Ich denk, jetzt ists mir klar geworden... Dank dir.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz