在过程或函数内部创建的对像,的生存期?

madyak 2002-06-11 06:04:53
在过程或函数内部创建的对像,如果不在此过程或函数内部显式释放,不调用free之类的过程,当退出此过程(函数)时是否此对像还占着资源?
例如:
function CoutNum:integer;
var
Q:TQuery;
begin
Q:=TQuery.Create(nil);
Q.DatabaseName='Demo';
Q.SQL.Text:='select count(*) as num from table';
Q.Open;
result:=Q.fieldbyname('num').AsInteger;
end;

...全文
21 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
haiyang 2002-06-11
  • 打赏
  • 举报
回复
同意楼上。
过程内容的变量过程执行完后会自带释放的,但是创建的对象
就不会自动释放,因此这种情况会造成内存泄漏,最好避免
这种情况。
sleeepboy 2002-06-11
  • 打赏
  • 举报
回复
你的那个变量Q在函数结束后就释放了
但是Q所指的地址 也就是你create的对象的内存不会被释放
因此这样会导致内存泄漏
很土 2002-06-11
  • 打赏
  • 举报
回复
在过程调用完后是不会自动释放的,但在整个程序退出时会自动释放。
很土 2002-06-11
  • 打赏
  • 举报
回复
在过程调用完后是不会自动释放的,但在整个程序退出时会自动释放。
netlib 2002-06-11
  • 打赏
  • 举报
回复
类对象系统是不会自动释放的,
所以建议你用完就释放。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧