C ist die richtige Antwort.
Aber Merke: nicht create selber erstellt die Instanz!
Nochmal langsam:
Delphi-Quellcode:
myObject = class
public
constructor create;
end;
my2ndObject = class
public
constructor create; override;
end;
Sodele:
Delphi-Quellcode:
constructor myObject.Create;
begin
ShowMessage('Instanz von myObject erzeugt...');
end;
constructor my2ndObject.Create;
begin
ShowMessage('Instanz von my2ndObject erzeugt...');
end;
Wie leicht zu erkennen ist, ruft nun ein:
Delphi-Quellcode:
procedure Test;
var
obj: my2ndObject;
begin
obj := my2ndObject.Create;
end;
nur den Konstruktor von my2ndObject auf. Es erscheint also _nicht_ die Nachricht, das ein myObject erzeugt wurde. Der Konstruktor von myObject wird nur dann ausgeführt, wenn Du im aufgerufenen Konstruktor (my2ndObject.Create) auch ein inherited aufrufst.