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.
cHJvZ3JhbSBQcm9qZWN0MTsKeyRNT0RFIERFTFBISX0KCnR5cGUgUGFyZW50ID0gY2xhc3MKICAgIGNvbnN0cnVjdG9yIGNyZWF0ZShjb25zdCBzdHI6IHN0cmluZyk7CmVuZDsKCnR5cGUgQ2hpbGQgPSBjbGFzcyhQYXJlbnQpCmVuZDsKCnR5cGUgQ2xhc3NPZlBhcmVudCA9IGNsYXNzIG9mIFBhcmVudDsKCmZ1bmN0aW9uIGZhY3QoQ2xhc3NUeXBlOiBDbGFzc09mUGFyZW50OyBjb25zdCBzdHI6IHN0cmluZyk6IFBhcmVudDsKYmVnaW4KCXJlc3VsdCA6PSBDbGFzc1R5cGUuQ3JlYXRlKHN0cik7CmVuZDsKCmNvbnN0cnVjdG9yIFBhcmVudC5jcmVhdGUoY29uc3Qgc3RyOiBzdHJpbmcpOwpiZWdpbgplbmQ7Cgp2YXIgaW5zdDogUGFyZW50OwoKYmVnaW4KICBpbnN0IDo9IGZhY3QoQ2hpbGQsICdTYXNoYScpOwplbmQuICAg