AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Inherited destroy Problem

Ein Thema von Jelly · begonnen am 23. Dez 2004 · letzter Beitrag vom 23. Dez 2004
Antwort Antwort
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#1

Inherited destroy Problem

  Alt 23. Dez 2004, 15:53
Hallo,

ich habe mir eine Basisklasse im Wesentlichen wie folgt definiert (aufs Wesentliche reduziert):
Delphi-Quellcode:
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;
Darauf baut eine Klasse
Delphi-Quellcode:
type
  TMCExport_Radial = class (TMCExport)
  end ;

var
 Radial : TMCExport_Radial ;
mit irgendwelchen klassenspezifischen Funktionen.

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?
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Inherited destroy Problem

  Alt 23. Dez 2004, 15:55
Hi,

müsste es hinter dem Destroy der Basisklasse nicht override heißen (es ist ja bereits in TObject virtuell)?

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Inherited destroy Problem

  Alt 23. Dez 2004, 15:58
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.
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Inherited destroy Problem

  Alt 23. Dez 2004, 16:08
Zitat von Jelly:
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.
Hi,

liegt vllt. daran, dass der Konstruktur vorher nicht als virtual deklariert wurde (in TObject)

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Inherited destroy Problem

  Alt 23. Dez 2004, 16:10
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:52 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