freeandnil函数的作用?
最近在看李维的inside vcl,第二章讲对象的释放的时候,讲到了freeandnil函数,
procedure FreeAndNil(var Obj);
var
Temp: TObject;
begin
Temp := TObject(Obj);
Pointer(Obj) := nil;
Temp.Free;
end;
我的问题是,如果我用freeandnil来释放一个类对象,freeandnil(aa),那么 Pointer(aa) := nil; 是不是只是把指向aa对象的指针置为nil,但不会释放它所占用的内存空间呢?
其实 这个问题就是 Temp.Free是否等于aa.free的问题,freeandnil接受的参数是传地址的,但是不是对Temp操作就是对aa操作呢?
请大侠给讲讲。