Опережающее объявление
В некоторых ситуациях возникает необходимость вызвать
подпрограмму, описанную далее по тексту программы. Например, такая необходимость
возникает при косвенной рекурсии (подпрограмма A
вызывает подпрограмму B
, а та в свою очередь
вызывает подпрограмму A
). В этом случае
используется опережающее объявление подпрограммы, состоящее из ее заголовка, за
которым следует ключевое слово forward
.
Например:
procedure B(i: integer); forward; procedure A(i: integer); begin ... B(i-1); end; procedure B(i: integer); begin ... A(i div 2); end;
Запрещено делать опережающее объявление для уже описанной подпрограммы.
Для методов ключевое слово forward
запрещено. В нем нет
необходимости, потому что можно вызывать методы, определенные в теле класса
позднее.