TObject.InstanceSize返回8,但是TObject没有声明任何数据成员。根据TObject.ClassType的实现,可以将前4个字节解释为指向对象的TClass元数据的指针。有人知道其他4个字节的开销是什么吗?

编辑:显然,这是特定于D2009的。在旧版本中,只有4个字节。

最佳答案

在Delphi 2009中,存在the ability to have a reference to a synchronization monitor。看:

class function TMonitor.GetFieldAddress(AObject: TObject): PPMonitor;
class function TMonitor.GetMonitor(AObject: TObject): PMonitor;

...在System.pas中

此外,仍然有指向VMT的指针。 (虚拟方法表。)From Delphi in a Nutshell:

关于delphi - TObject包含哪些数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/679022/

10-10 18:24