Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Frage zum erzeugen von Objekten (https://www.delphipraxis.net/98104-frage-zum-erzeugen-von-objekten.html)

GroHae 21. Aug 2007 14:12


Frage zum erzeugen von Objekten
 
Hallo zusammen,

irgendwie sitze ich auf der Leitung. :oops:

Delphi-Quellcode:
   TBaseWKZ = class(TObject)
   private
      ActLstTmpUmsatzFuerWKZ : TLstTmpUmsatzFuerWKZ;
   private
      constructor create; // --> Hier wird ActLstTmpUmsatzFuerWKZ erzeugt
      procedure xyz;
   end;

   TWkz = class(TBaseWKZ)
      procedure MachMal;
   end;
Wenn ich jetzt ein Objekt vom Typ TWKZ erzeuge bekomme ich einen Laufzeitfehler, da NICHT der construktor von TBaseWKZ aufgerufen wird und deswegen das Objekt ActLstTmpUmsatzFuerWKZ nicht erzeigt wurde.
Das klappt nur wenn ich auch einen construktor in TWkz habe welcher dann m.H. Inherited den construktor von TBaseWKZ aufruft.

Warum ist das so? Ich dachte immer, das die Unterklasse den construktor der Oberklasse aufruft. Schließlich erbt die Unterklasse doch von der Oberklasse.

Bernhard Geyer 21. Aug 2007 14:15

Re: Frage zum erzeugen von Objekten
 
In TObject ist der Konstruktor nicht virtuell definiert! Du mußt das nachholen damit es auch mit der eigenen Klasse klappt.

Delphi-Quellcode:
  TBaseWKZ = class(TObject)
  private
    constructor create; virtual;
  end;

constructor TBaseWKZ.create;
begin
  inherited;

  ...
end;

GroHae 21. Aug 2007 14:28

Re: Frage zum erzeugen von Objekten
 
OK Danke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:45 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