Опережающее объявление

Опережающее объявление

В некоторых ситуациях возникает необходимость вызвать подпрограмму, описанную далее по тексту программы. Например, такая необходимость возникает при косвенной рекурсии (подпрограмма 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 запрещено. В нем нет необходимости, потому что можно вызывать методы, определенные в теле класса позднее.