free与destory的区别???????(50分)

H

HHBBSS

Unregistered / Unconfirmed
GUEST, unregistred user!
object.free与
destructor destory;override
inherited destroy
有什么不同,
另外释放对象和析构有什么区别?
一般什么情况用?
 
free检查一下指向对象的指针是否为空,
所以推荐用 free.
 
destropy不释放对象指针
FREE会先检查对象指针是否释放,如果没有置空则置空
 
To HIGOAL:
FREE 同样不释放对象指针,要释放应该调用
freeandnil(object:tobject);
 
xeen说得对。

原来都是
object.free;
object:=nil;
原来还可以freeandnil。谢谢Xeen
 
那我看范例时候好多关于类的方法重载中释放对象都用
的是析构函数destructor 后destory why???????????
 
你看一下delphi的源代码,很容易理解,对你还能有提高,好吗?
 
这是delphi源码;
procedure TObject.Free;
begin
if Self <> nil then
Destroy;
end;

procedure FreeAndNil(var Obj);
var
Temp: TObject;
begin
Temp := TObject(Obj);
Pointer(Obj) := nil;
Temp.Free;
end;

destructor是析构函数的标识字,就相当时function一样.真正的函数还是Destory!
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
顶部