Ja, das ist richtig.
uligerhardt hatte zwar geschrieben dass es auch ohne geht.
Das Allerdings nur bedingt und damit nicht richtig.
Man kann alle Felder benutzen aber der abgeleitete Constructor wird nicht aufgerufen.
Im Beispiel gab es keinen. Deswegen ist es nicht aufgefallen.
Virtueller und in abgeleiteter Klasse überschriebener Constructor und es funktionier einwandfrei.
Wenn man solche speziellen Sachen macht muss man natürlich noch mehr darauf achten, dass nachher alles wieder freigegeben wird.
Das war bei mir aber gegeben durch:
Delphi-Quellcode:
type
TAnimalList = class(TObjectList<TAnimal>)
public
constructor Create; reintroduce;
end;
constructor TAnimalList.Create;
begin
inherited Create(true); //AOwnsObjects
end;