gpt4 book ai didi

delphi - 在不使用变量的情况下在Delphi中实例化对象

转载 作者:行者123 更新时间:2023-12-03 19:13:06 25 4
gpt4 key购买 nike

TObject.Create().method;

Method(TObject.Create);


这种类型的内存调用是否在堆或堆栈上分配?是否需要发布?

最佳答案

Delphi类实例始终分配在堆上,是的,使用完它们后,需要通过TObject.Destroy()(调用TObject.Free())释放它们,例如:

obj := TObject.Create;
try
obj.method;
finally
obj.Free;
end;




obj := TObject.Create;
try
Method(obj);
finally
obj.Free;
end;




procedure Method(obj: TObject);
begin
...
obj.Free;
end;

Method(TObject.Create);




function Method(obj: TObject): TObject;
begin
...
Result := obj;
end;

Method(TObject.Create).Free;


等等。您使用构造函数 Create编写的任何对象都必须使用析构函数进行 Destroy编辑。

1:如果您在使用 ARC for object lifetime management的平台(当前为iOS,Android和Linux)上运行代码,则对象将被引用计数并自动为您释放。

关于delphi - 在不使用变量的情况下在Delphi中实例化对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50378979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com