Описание типов

Раздел описания типов начинается со служебного слова type, после которого следуют строки вида

имя типа = тип;
Например,

type
 
myint = integer;
  arr10 = array [1..10] of integer;
  pinteger = ^integer;
  A = class
    i: integer;
    constructor Create(ii: integer);
    begin
      i:=ii;
    end;
  end;

При описании рекурсивных структур данных указатель на тип может фигурировать раньше описания самого типа в определении другого типа:

type
  PNode = ^TNode;
  TNode = record
    data: integer;
    next: PNode;
  end;

При этом важно, чтобы определения обоих типов находились в одном разделе type.

В отличие от Delphi Object Pascal следующее рекурсивное описание верно:

type
  TNode = record
    data: integer;
    next: ^TNode;
  end;

Отметим, что для ссылочных типов (классов) разрешается описание поля с типом, совпадающим с типом текущего класса:

type
  Node = class
    data: integer;
    next: Node;
  end;