对Object Pascal编译器给类对象分配堆内存细节的一种大胆猜测(下)[3]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 mahongxi 的 blog

b := tbase.create;     ß在这里设断点!

b.free;

end;

通过对代码进行跟踪果然在一进入create就马上调用newinstance方法。

[说明:一定要重载它才能跟踪到它,在断点处,观察cpu,从反汇编后的代码中可以发现,是先调用一个_classcreate,然后才调用newinstance]

用同样的方法可以分析出b.free会最终调用到freeinstance;来释放对象。

 

我想基本上大的问题已经说请了,object pascal为了实现分配堆内存,在你调用构造器的时候:

b := tbase.create;

本文关键:Object Pascal 分配内存
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top