Virtual bei
Create
benötigt man z.b. in folgendem Falle:
Delphi-Quellcode:
type
TBaseClass = class(TObject)
public
constructor Create; virtual;
end;
TClassA = class(TBaseClass)
public
constructor Create; override;
end;
TClassB = class(TBaseClass)
public
constructor Create; override;
end;
TClassType = class of TBaseClass;
..
function DynamicCreate(ClassType: TClassType): TBaseClass;
begin
Result := ClassType.Create;
end;
Hätte man den Constructor hier nicht als
virtual
deklariert, würde immer Der von
TBaseClass
aufgerufen. Mit
virtual
ruft die Funktion korrekt den Constructor der konkreten Klasse auf.