我们在 Delphi 中创建的每个 Class 都需要有析构函数吗?

Does every Class we create in Delphi need to have destructor?

当我在 Delphi 应用程序中创建自定义 Class 时,我使用标准程序:

TCustomClass = Class
 private
  var1,var2 : integer/string/Real/Boolean...
  procedure P1...
  function F1...
 public
  constructor Create;
end;

...

CustomClass := TCustomClass.create;

我想知道我是否总是必须同时创建 Destructor 过程,或者当应用程序关闭时资源是否会自动释放?

我总是使用 Application 作为所有者,很少使用 Self 或 Nil,我不记得我在互联网上看到 类 上有人声明 Destructor,除了有人使用指针时。

Delphi 中的析构函数背后的逻辑是否与 C++ 中的逻辑相同,如本问题所述:

Should every class have a virtual destructor?

提前致谢。

编辑1: 正如免费咨询所提到的,我忘了说其中一个变量可能是 TBitmap 类型

如果你需要清理一些东西,比如分配的内存,它只需要一个析构函数。例如,如果你在构造函数中使用了TClassname.Create(...),你需要在析构函数方法中进行free。

当然,需要析构函数的原因可能有很多(一直到通知用户他的数据即将被擦除),但这是最常见的一个。