请问为什么这个对象Destory后还能用?
...
Figure:=TFigure.create;
Figure.draw;
Figure.destory;
TRectangle(Figure).draw;
...
程序这样执行也不会报错?为什么Figure已经Destory了,还可以执行TRectangle(Figure).draw,并且不报错?
问题点数:20、回复次数:4Top
1 楼kofxdm(木木)回复于 2003-12-02 11:22:11 得分 2
建议使用free来释放,直接用destory可能会由于某些因素导致释放出问题。
Top
2 楼sundayboysII(空)回复于 2003-12-02 11:51:44 得分 9
这样做并不安全,虽然你调用了Figure的Destroy,但指针没有变为nil,所以Figure指向的内存区域不是安全的,如果这个内存块还没有被其他占用,所以还没有出错。Top
3 楼tonylk(=www.tonixsoft.com=)回复于 2003-12-02 12:09:52 得分 9
delphi自己的内存管理机制,虽然已经调用了destroy方法,但是由于该对象所在的内存段柄未被其它数据所使用,所以表面上对它的操作是不会崩溃的。。但是这样也是由概率的。。
另,释放对象用free方法好过直接destroy。Top
4 楼caike(ck)回复于 2003-12-02 15:05:03 得分 0
谢谢各位指点!Top




