44 lines
1.2 KiB
HTML
44 lines
1.2 KiB
HTML
<html>
|
||
|
||
<head>
|
||
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
|
||
<title></title>
|
||
<link rel="StyleSheet" href="../../default.css">
|
||
</head>
|
||
|
||
<body>
|
||
<H1>Предварительное объявление классов</H1>
|
||
<p>Два или более класса могут содержать в качестве полей объекты
|
||
других классов, циклически ссылающиеся друг на друга. </p>
|
||
<p>Например:</p>
|
||
<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>
|
||
<p>Данный код вызовет ошибку компиляции, поскольку тип
|
||
<code>BBB</code> в момент описания поля b
|
||
еще не определен. В такой ситуации следует воспользоваться предварительным
|
||
описанием класса в виде</p>
|
||
<blockquote>
|
||
<p><i>ИмяКласса</i> <code>= <b>class</b></code>;</p>
|
||
</blockquote>
|
||
<p>Предварительно описанный класс должен быть полностью описан в
|
||
той же секции <code><b>type</b></code>:</p>
|
||
<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> |