program Project1;
{$MODE DELPHI}

type Parent = class
    constructor create(const str: string);
end;

type Child = class(Parent)
end;

type ClassOfParent = class of Parent;

function fact(ClassType: ClassOfParent; const str: string): Parent;
begin
	result := ClassType.Create(str);
end;

constructor Parent.create(const str: string);
begin
end;

var inst: Parent;

begin
  inst := fact(Child, 'Sasha');
end.   