Операция
new
имеет вид:
new
ИмяКласса(
ПараметрыКонструктора)
Она вызывает конструктор класса ИмяКласса и возвращает созданный объект.
Например:
type My = class
constructor Create(i: integer);
begin
end;
end;
var m: My := new My(5);
Эквивалентным способом создания объекта является вызов конструктора в стиле Object Pacal:
var m: My := My.Create(5);
Создание объекта класса при инициализации переменной проще проводить, используя автоопределение типа:
var m := new My(5);
В записи также могут быть определены конструкторы, которые вызываются аналогично. Но в отличие от класса вызов конструктора записи не выделяет память (она уже выделена) и только заполняет значения полей.