gpt4 book ai didi

delphi - 如何释放嵌套(对象类型)字段类?

转载 作者:行者123 更新时间:2023-12-03 18:04:51 26 4
gpt4 key购买 nike

TBaseClass = class
public
destructor Destroy; override;
end;

TFirstClass = class(TBaseClass)
FMyProp: string;
end;

TSecondClass = class(TBaseClass)
FMyFirstClass: TFirstClass;
end;

我需要实现一个 DESTRUCTOR,它能够从相同的基类并为其提供 Free 以避免所有这些内存泄漏。

为什么?因为可以创建或不创建 FMyFirstClass,这取决于我的应用程序的流程,我不能保证何时创建它以释放它,也不想用 NIL 检查类型的代码填充所有析构函数,因为我有很多这样的领域。

我正在尝试使用新的 RTTI 获取基于 TBaseClass 的所有字段,但我无法获取对象字段的实例,而且我没有想法。

我走的路对吗?你建议做什么?

最佳答案

调用 Free 对 nil 实例没有影响。它是故意这样设计的。您的析构函数应该在它逻辑上拥有的对象类型的任何字段上调用 ​​Free,而不管该对象是否已构造。

关于delphi - 如何释放嵌套(对象类型)字段类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6554763/

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