Delphi: как освободить объект, созданный динамически в качестве параметра метода

У меня есть метод с параметром как объект (слямзил код ниже):

TMyObject=class(TObject)
  constructor Create();
  destructor Destroy();override;
end;

implementation

function doSomething(x:TMyObject):integer;
begin
  //code
end;

procedure test();
var
  w:integer;
begin
  w:=doSomething(TMyObject.Create);
  //here: how to free the created object in line above?
end;

Как уничтожить объект, созданный внутри вызываемого метода doSomething вне этого метода?

1 ответов


чтобы освободить экземпляр объекта, вам нужно иметь ссылку на него, на котором вы можете вызвать Free().

поскольку вы создаете экземпляр объекта на месте в качестве параметра, единственная ссылка, которую вы будете иметь, - это внутри