Vorwärtsdeklarationen sind nur innerhalb eines Definitionsblocks (type) erlaubt.
Ein Beispiel für Klassen die sich gegenseitig verwenden:
Delphi-Quellcode:
type
// Deklariere TBar vorwärts, damit er in TFoo verwendet werden kann
TBar = class;
// Deklariere TFoo (verwendet TBar)
TFoo = class
private
FBar: TBar;
public
property Bar: TBar read FBar;
end;
// Deklariere TBar (verwendet TFoo)
TBar = class
private
FFoo: TFoo;
public
property Foo: TFoo read FFoo;
end;
Ein Beispiel für Strukturen die sich gegenseitig verwenden:
Delphi-Quellcode:
type
// Deklariere Zeiger auf TBar, damit er in TFoo verwendet werden kann
PBar = ^TBar;
// Deklariere TFoo (verwendet PBar)
PFoo = ^TFoo;
TFoo = record
Bar: PBar;
end;
// Deklariere TBar (verwendet PFoo)
TBar = record
Foo: PFoo;
end;