AGB  ·  Datenschutz  ·  Impressum  







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

Destruktor ueberschreiben - Warnung

Ein Thema von alcaeus · begonnen am 18. Apr 2005 · letzter Beitrag vom 18. Apr 2005
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#1

Destruktor ueberschreiben - Warnung

  Alt 18. Apr 2005, 16:49
Hallo allerseits,

ich versuche in einer von TObject abgeleiteten Klasse den Destruktor zu ueberschreiben, um einen Parameter hinzuzufuegen (fragt nicht warum, ich will es so, weil es komfortabel waere )

Delphi-Quellcode:
  TProgramOptions = class(TObject)
    private
      //...
    public
      constructor Create(LoadFile: Boolean=False);
      procedure Free(SaveFile: Boolean=False); overload;
      destructor Destroy(SaveFile: Boolean=False); overload;
      //...
  end; //type TProgramOptions = class(TObject)
Nun schimpft der Compiler aber rum, dass mein Destroy die Methode der Basisklasse ueberschreibt ("Method 'Destroy' hides virtual method of base type 'TObject'). Ich weiss es ist nur eine Warnung, aber mich interessiert, wie ich das umgehen kann. Welches Schluesselwort muss ich anstatt overload verwenden?

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Destruktor ueberschreiben - Warnung

  Alt 18. Apr 2005, 16:51
Gab es da nicht sowas wie override;

MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#3

Re: Destruktor ueberschreiben - Warnung

  Alt 18. Apr 2005, 16:51
Zitat von Binärbaum:
Gab es da nicht sowas wie override;
Ja, das gibt es. Allerdings muessen fuer override die Parameterliste und der Rueckgabetyp uebereinstimmen

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Destruktor ueberschreiben - Warnung

  Alt 18. Apr 2005, 16:53
Man sollte (darf) für den Destructor die Parameterliste nicht ändern. Das führt nur zu unnötigen AVs!

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#5

Re: Destruktor ueberschreiben - Warnung

  Alt 18. Apr 2005, 16:53
Delphi-Referenz durchsuchenreintroduce sollte sein was du suchst.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Destruktor ueberschreiben - Warnung

  Alt 18. Apr 2005, 16:54
Zitat von sakura:
Man sollte (darf) für den Destructor die Parameterliste nicht ändern. Das führt nur zu unnötigen AVs!

......
Man könnte doch noch eine Public-Variable definieren und wenn die auf true steht, wird halt noch gespeichert^^
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#7

Re: Destruktor ueberschreiben - Warnung

  Alt 18. Apr 2005, 16:54
Zitat von sakura:
Man sollte (darf) für den Destructor die Parameterliste nicht ändern. Das führt nur zu unnötigen AVs!
Na gut, also gibts nur ein Free mit Parameter, und das wars auch schon. Danke trotzdem..
Allerdings wuerde mich jetzt interessieren warum es die AVs gibt

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Destruktor ueberschreiben - Warnung

  Alt 18. Apr 2005, 17:01
Zitat von alcaeus:
Na gut, also gibts nur ein Free mit Parameter, und das wars auch schon. Danke trotzdem..
Auch nicht entscheidend besser, da Free intern durch Delphi gerne genutzt wird, um Objekte freizugeben.

Zitat von alcaeus:
Allerdings wuerde mich jetzt interessieren warum es die AVs gibt
Und Free ruft Destroy auf...

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#9

Re: Destruktor ueberschreiben - Warnung

  Alt 18. Apr 2005, 17:03
Zitat von sakura:
Auch nicht entscheidend besser, da Free intern durch Delphi gerne genutzt wird, um Objekte freizugeben.
Sollte nicht zu sehr ins Gewicht fallen, der Parameter ist mit einem Default-Wert belegt. Evtl. wird die Collection vor dem freigeben eben nicht gespeichert, aber was solls...

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Destruktor ueberschreiben - Warnung

  Alt 18. Apr 2005, 17:13
Zitat von alcaeus:
Sollte nicht zu sehr ins Gewicht fallen, der Parameter ist mit einem Default-Wert belegt. Evtl. wird die Collection vor dem freigeben eben nicht gespeichert, aber was solls...
Default-Werte werden beim Kompilieren, wenn nicht vorhanden im Aufruf "gefakt". Da aber die ganzen Delphi-Funktionen auf TObject als Basis zugreifen, finden die dort keinen Default-Wert, so wird auch keiner durch den Compiler gefakt -> immer noch eine AV wenn diese auf Deine Implementierung treffen

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 08:22 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