Ich bin fest davon überzeugt, dass philharmonys Annahmen völlig korrekt sind, und man keinen Getter für 2 bräuchte. Wenn das nicht wäre, würde man ja sowas von übel im Klassendesign beschränkt sein, und jede Pupel-Property durchreichen müssen. Man kann eben nur die Instanz von Parkhaus.Auto[i] keiner Variablen zuweisen, da für diese kein passender Typ verfügbar wäre.*
*)Wäre es schon: Jede Elternklasse von TAuto ginge, nur könnte man nachher nicht mehr dort hin casten um an die Member heranzukommen die seit dem verwendeten Typ dazu kamen. Und da alle Klassen zwangsweise von TObject erben, ginge durchaus dieses:
Delphi-Quellcode:
var
auto: TObject;
begin
auto := Parkhaus.Autos[0];
Nur könnte man nicht mehr auf
auto.NReifen
zugreifen, da es das in TObject noch nicht gibt. Gäbe es hingegen einen Vorfahren von TAuto - z.B. TBereiftesVehikel - der bereits den Member NReifen kennt, und man dessen
Unit einbände, DANN ginge das wieder. Aber das sind jetzt langsam eigentlich nur noch theoretische Überlegungen.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)