pascalabcnet/PABCNetHelp/LangGuide/ProcFunc/forward.html

46 lines
1.8 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<html>
<head>
<object type="application/x-oleobject" classid="clsid:1e2a7bd0-dab9-11d0-b93a-00c04fc99f9e">
<param name="Keyword" value="forward">
</object>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title></title>
<link rel="StyleSheet" href="../../default.css">
</head>
<body>
<H1>Опережающее объявление</H1>
<p>В некоторых ситуациях возникает необходимость вызвать
подпрограмму, описанную далее по тексту программы. Например, такая необходимость
возникает при косвенной рекурсии (подпрограмма <code>A</code>
вызывает подпрограмму <code>B</code>, а та в свою очередь
вызывает подпрограмму <code>A</code>). В этом случае
используется опережающее объявление подпрограммы, состоящее из ее заголовка, за
которым следует ключевое слово <b><code>forward</code></b>.
Например:</p>
<blockquote>
<pre>
<code><b>procedure</b> B(i: integer); <b>forward</b>;
<b>procedure</b> A(i: integer);
<b>begin</b>
...
B(i-1);
<b>end</b>;<b>
procedure</b> B(i: integer);
<b>begin</b>
...
A(i <b>div</b> 2);
<b>end</b>;</code>
</pre>
</blockquote>
<p>Запрещено делать опережающее объявление
для уже описанной подпрограммы.</p>
<p>Для методов ключевое слово <b><code>forward</code></b> запрещено. В нем нет
необходимости, потому что можно вызывать методы, определенные в теле класса
позднее. </p>
</body>
</html>