假设我的 Delphi 类如下所示:
interface
type
TMySubInfo = class
public
Name : string;
Date : TDateTime;
Age : Integer;
end;
TMyInfo = class
public
Name : string;
SubInfo : array of TMySubInfo;
destructor Destroy; override;
end;
implementation
destructor TMyInfo.Destroy;
begin
// hmmm..
end;
end.
为了正确清理,析构函数中应该包含什么?执行 SetLength(SubInfo,0)
就足够了,还是需要循环并释放每个 TMySubInfo
?我需要做任何事情吗?
最佳答案
您需要循环并释放每个创建的对象。
您必须知道,声明 TMySubInfo 数组实际上并不会创建对象。您必须稍后创建它们。
我会使用 TList 来代替更动态的方法。您甚至可以使用 TObjectList,它可以在列表被释放时释放其所有项目。
关于delphi - 我应该如何在 Delphi 7 析构函数中释放对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/544075/