![]() |
Eigene Klasse erzeugen, inherited erforderlich?
Hallo,
ich habe eine Klasse erstellt, welche Datenbankoperationen vornehmen soll.
Delphi-Quellcode:
TDBExport = class
Soweit, so gut, alles läuft. Im construktor habe ich inherited und dann die Erzeugung der Datenbankkomponenten, auch alles bestens:
Delphi-Quellcode:
Nun wollte ich im Construktor gleich einen Pfad übergeben:
constructor TDBExport.Create;
begin inherited; try // was sonst noch erzeugt werden muss FDConnection1 := TFDConnection.Create(Nil); ...
Delphi-Quellcode:
und da bekomme ich nun in der inherited-Zeile die Fehlermeldung:
constructor TDBExport.Create(DBPath: string);
begin inherited; try DatabasePath := DBPath; FDConnection1 := TFDConnection.Create(Nil); ... [dcc32 Fehler] ClassDBExport.pas(43): E2008 Inkompatible Typen Ist inherited eigentlich hier überhaupt erforderlich, ohne funktioniert es ja auch? Alles was ich brauche wird im construktor erzeugt und im destructor zerstört. Kann mir bitte jemand einen Hinweis geben? Ciao Stefan |
AW: Eigene Klasse erzeugen, inherited erforderlich?
Der Fehler kommt daher dass dein Konstruktor nicht parameterlos ist und der übergeordnete Konstruktor schon. Also musst du ihn explizit angeben: Statt
Delphi-Quellcode:
also
inherited;
Delphi-Quellcode:
.
inherited Create();
Streng genommen hast du Recht - Da du von
Delphi-Quellcode:
ableitest ist da nichts drin was du vermissen würdest. Ich persönlich würde mir angewöhnen es trotzdem immer explizit anzugeben, es kostet ja nichts. Es ist gute Gewohnheit das immer drin zu lassen. Damit läufst du auch weniger in Gefahr es zu vergessen wenn du es mal wirklich brauchen solltest ;-)
TObject
|
AW: Eigene Klasse erzeugen, inherited erforderlich?
OK, vielen Dank, jetzt habe ich es verstanden!
Ciao Stefan |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz