use*_*126 0 memory delphi free destructor
我想知道为什么在我调用Free方法后对象不是nil.
我的意思是下一堂课:
type Ta = class(TObject)
public
i: integer;
destructor Destroy; override;
end;
destructor Ta.Destroy;
begin
inherited;
end;
procedure Form1.Button1;
var a: Ta;
begin
a := Ta.Create;
a.Free;
if a = nil then
button1.Caption := 'is assigned'
else
button1.caption := 'is not assigned';
end;
Run Code Online (Sandbox Code Playgroud)
我的问题是,为什么后释放对象是不是nil和我将如何做a是nil析构函数后不使用a := nil?
NGL*_*GLN 10
说明:
变量a仅nil在分配 时才会变为nil.这意味着需要a := nil代码,现在缺少.
Free 只是一种方法,处理Ta类的实例.免费破坏那个a指向的实例.该值的a仍然是相同的,现在指向这里曾经是一个内存地址Ta的实例.
解:
使用FreeAndNil(a)对象同时破坏到该变量指向和nillify变量.
| 归档时间: |
|
| 查看次数: |
1745 次 |
| 最近记录: |