Ich bin öfters mal auf die Forward Deklaration gestossen, nur für welchen Anwendungszweck ist diese Forward Deklaration eigentlich gut?
Neben dem Beispiel in der Doku kommt z.B. folgender Beispiel-Fall zur Anwendung:
Delphi-Quellcode:
type
TContainer = class;
TContainerItem = class
private
FContainer: TContainer;
protected
procedure RecalcAll;
public
procedure Recalc;
end;
TContainer = class
private
FItems: TArray<TContainerItem>;
public
procedure RecalcAll;
end;
procedure TContainerItem.RecalcAll;
begin
FContainer.RecalcAll;
end;
procedure TContainer.RecalcAll;
begin
for var item in FItems do
item.Recalc;
end;
Hier wissen die Items, zu wem sie gehören und können was auch immer damit tun.