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()
.
поскольку вы создаете экземпляр объекта на месте в качестве параметра, единственная ссылка, которую вы будете иметь, - это внутри