Hallo zusammen,
ich habe mal eine verständnis Frage zum Constructor
ich habe eine Kind klasse die 3 zusätzliche Felder
zur Elternklasse hinzubekommt
Nun erstelle ich in der Kind klasse einen Constructor
mit den neuen 3 Feldern, soweit so gut
Wenn ich nun ein Objekt der Kind klasse erstelle werden
mir auch logisch nur die 3 Felder dieses Constructor vorgegeben
was so auch erstmal logisch erscheint
Frage:
ist es machbar das der Constructor der Kind klasse mir auch
die Felder der Eltern klasse mit anzeigt
So das das Objekt aus der Kind Klasse alle Felder
belegt
oder muß der Constructor der Kind klasse
auch die Felder der Eltern klasse die ich übernehmen will
eingetragen haben ?
constructor die Parameter der Elternklasse übernehmen
-
- Beiträge: 16
- Registriert: Mo 18. Mär 2013, 17:19
- OS, Lazarus, FPC: MAC OSX
- CPU-Target: xxBit
constructor die Parameter der Elternklasse übernehmen
mfg
Horst Sammler
Horst Sammler
- Winni
- Beiträge: 1577
- Registriert: Mo 2. Mär 2009, 16:45
- OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
- CPU-Target: 64Bit
- Wohnort: Fast Dänemark
Re: constructor die Parameter der Elternklasse übernehmen
Hi
Steht alles in den Docs:
https://wiki.freepascal.org/Inherited
und
https://www.freepascal.org/docs-html/ref/refsu32.html
- die "Magie" von inherited
Winni
Steht alles in den Docs:
https://wiki.freepascal.org/Inherited
und
https://www.freepascal.org/docs-html/ref/refsu32.html
- die "Magie" von inherited
Winni
- af0815
- Lazarusforum e. V.
- Beiträge: 6766
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: constructor die Parameter der Elternklasse übernehmen
Faustregel:
Im Create zuerst das inherited, beim Destroy zuletzt das inherited, ausser du weisst genau, warum du das so nicht machst.
Im Create zuerst das inherited, beim Destroy zuletzt das inherited, ausser du weisst genau, warum du das so nicht machst.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
Re: constructor die Parameter der Elternklasse übernehmen
Ich glaube Biertrinker meint wirklich nur die Parameter.
Parent:
constructor Create(A,B,C: integer);
Abgeleitete Klasse
constructor Create(D,E: integer); override;
Jetzt soll das automatisch irgendwie
constructor Create(A,B,C,D,E: integer); override;
werden?
Parent:
constructor Create(A,B,C: integer);
Abgeleitete Klasse
constructor Create(D,E: integer); override;
Jetzt soll das automatisch irgendwie
constructor Create(A,B,C,D,E: integer); override;
werden?
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1639
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: constructor die Parameter der Elternklasse übernehmen
Wenn Du einen als virtual deklarierten Constructor via override überschreiben willst, dann muß der genau die gleichen Parameter haben wie der aus der Elternklasse.
Man kann aber auch das überschreiben.
Man kann aber auch das überschreiben.
Code: Alles auswählen
type
TBase = class
constructor Create(aa, ab, ac : integer); virtual;
end;
TDerived = class ( TBase )
constructor Create(aa, ab, ac, ae, ad : integer); reintroduce; virtual;
end;
-
- Beiträge: 6900
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: constructor die Parameter der Elternklasse übernehmen
Wen ich es richtig verstehe, wird man mit "reintroduce" gezwungen, der neue abgeleitete Constructor zu verwenden ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot