> -- prospero78 писал(а):
> Это и есть конструктор.
Нет. Ещё раз повторю, конструктор = аллокатор + инициализатор, где конструктор - прежде всего паттерн, а аллокатор и инициализатор - процедуры/методы. Конструктор можно реализовать как отдельный метод, но это не существенно.

На примере:
## Код:
```
VAR
  f: Foo;
BEGIN
  NEW(f); InitFoo(f);
END;
```
Здесь процедура NEW - аллокатор, процедура InitFoo - инициализатор, а конструктор - всего навсего паттерн последовательного вызова этих двух процедур для создания экземпляра класса Foo. Можно оформит конструктор и в отдельную процедуру, но сути дела это не меняет.

Более-менее подробно будет так: если процедура/метод используется
для выделения памяти - то это аллокатор (NEW);для инициализации объекта при его создании - то инициализатор (InitFoo),для создания объекта (включающего и выделения памяти, и инициализацию) - то конструктор (ну или фабрика) (NewFoo, если таковой определён).