Предварительное объявление классов
Два или более класса могут содержать в качестве полей объекты других классов, циклически ссылающиеся друг на друга.
Например:
type AAA = class
b: BBB;
end;
BBB = class
a: AAA;
end;
Данный код вызовет ошибку компиляции, поскольку тип
BBB
в момент описания поля b
еще не определен. В такой ситуации следует воспользоваться предварительным
описанием класса в виде
ИмяКласса
= class
;
Предварительно описанный класс должен быть полностью описан в
той же секции type
:
type
BBB = class;
AAA = class
b: BBB;
end;
BBB = class
a: AAA;
end;