Mittlerweile sind die Constructors nicht mehr so wichtig. Habe soeben im eigenen Source mal gesucht. Die tauchen nur bei meinen eigenen Komponenten auf. Ist auch kein Wunder, denn das Create ist fast dasselbe.
ich modifiziere mal Dein Beispiel:
Delphi-Quellcode:
TSecond = class(TBase)
private
x,y : integer;
public
constructor Create;
end;
Constructor TBase.Create;
begin
x := 1;
y := 1;
z := 999;
end;
constructor TSecond.Create;
begin
inherited; // x und y erben die Werte von Vorfahrklasse, die durch inherited
// aufgerufen wird, sind also jetzt jeweils 1 z ist jetzt 999
// x und y sollen 1 bleiben, z aber 1000 :
z := 1000; // Entresult : x, y = 1, z = 1000 !!!!
end;
Soll nun der Wert von x und y mit 2 anfangen und z soll unberührt bleiben, so muß bereits in TBase.Create x und y auf 2 gesetzt werden. 8) So ungefähr läuft das.