2018-08-02 22:04:49 +03:00
|
|
|
|
<html>
|
|
|
|
|
|
|
|
|
|
|
|
<head>
|
|
|
|
|
|
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
|
|
|
|
|
|
<title></title>
|
|
|
|
|
|
<link rel="StyleSheet" href="../../default.css">
|
|
|
|
|
|
</head>
|
|
|
|
|
|
|
|
|
|
|
|
<body>
|
2025-11-07 16:12:31 +03:00
|
|
|
|
<H1>Предварительное объявление классов</H1>
|
|
|
|
|
|
<p>Два или более класса могут содержать в качестве полей объекты
|
|
|
|
|
|
других классов, циклически ссылающиеся друг на друга. </p>
|
|
|
|
|
|
<p>Например:</p>
|
2018-08-02 22:04:49 +03:00
|
|
|
|
<blockquote>
|
|
|
|
|
|
<p><code><b>type</b><br>
|
|
|
|
|
|
AAA =<b> class<br>
|
|
|
|
|
|
</b> b: BBB; <br>
|
|
|
|
|
|
<b>end</b>;<br>
|
|
|
|
|
|
BBB =<b> class</b><br>
|
|
|
|
|
|
a: AAA;<br>
|
|
|
|
|
|
<b>end</b>;</code></p>
|
|
|
|
|
|
</blockquote>
|
2025-11-07 16:12:31 +03:00
|
|
|
|
<p>Данный код вызовет ошибку компиляции, поскольку тип
|
|
|
|
|
|
<code>BBB</code> в момент описания поля b
|
|
|
|
|
|
еще не определен. В такой ситуации следует воспользоваться предварительным
|
|
|
|
|
|
описанием класса в виде</p>
|
2018-08-02 22:04:49 +03:00
|
|
|
|
<blockquote>
|
2025-11-07 16:12:31 +03:00
|
|
|
|
<p><i>ИмяКласса</i> <code>= <b>class</b></code>;</p>
|
2018-08-02 22:04:49 +03:00
|
|
|
|
</blockquote>
|
2025-11-07 16:12:31 +03:00
|
|
|
|
<p>Предварительно описанный класс должен быть полностью описан в
|
|
|
|
|
|
той же секции <code><b>type</b></code>:</p>
|
2018-08-02 22:04:49 +03:00
|
|
|
|
<blockquote>
|
|
|
|
|
|
<p><code><b>type</b><br>
|
|
|
|
|
|
BBB =<b> class</b>;<br>
|
|
|
|
|
|
AAA =<b> class<br>
|
|
|
|
|
|
</b> b: BBB; <br>
|
|
|
|
|
|
<b>end</b>;<br>
|
|
|
|
|
|
BBB =<b> class</b><br>
|
|
|
|
|
|
a: AAA;<br>
|
|
|
|
|
|
<b>end</b>;</code></p>
|
|
|
|
|
|
</blockquote>
|
|
|
|
|
|
</body>
|
|
|
|
|
|
|
|
|
|
|
|
</html>
|