CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  语言基础/算法/系统设计

请问为什么这个对象Destory后还能用?

楼主caike(ck)2003-12-02 09:49:53 在 Delphi / 语言基础/算法/系统设计 提问

...  
          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

相关问题

  • 为什么String 对象中[]不能用?
  • 为什么用Request对象会出错?
  • 为什么用movenext说少对象?
  • 为什么会出现"未将对象引用设置到对象的实例"
  • 为什么说我“未将对象引用设置到对象的实例”???
  • 未将对象引用设置到对象的实例。.为什么?
  • add()为什么不用任何对象调用啊?
  • 为什么我不会用这个Command对象呢?
  • 在构造函数中使用ofstream对象为什么出错?
  • 为什么,所有的对象都可以用var 来定义?

关键词

  • 内存
  • 执行
  • 安全
  • destory
  • figure
  • 对象
  • 报错
  • trectangle
  • 调用
  • 释放

得分解答快速导航

  • 帖主:caike
  • kofxdm
  • sundayboysII
  • tonylk

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo