L
locka
Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.Button1Click(Sender: TObject);
var
objectlist:Tobjectlist;
myobject;tmyobject
begin
myobject:= tmyobject.Create;
objectlist:=tobjectlist.Create;
objectlist.Add(myobject);
objectlist.Clear
//or delete
myobject.Free;
end;
运行时出错,是不是objectlist.clear执行后就无需myobjectlist.free?
如果真是这样的话,那又怎么讲啊(Tmyobject.create创建了一个对象,myobject就是指向它
的一个指针,myobject.free就是通过myobject这个指针找到对象的内存地址释放它;
objectlist.Add(myobject),这是由objectlist存储了myobject这个虚的地址指针,clear释放也应该只是释放
myobject这个虚的地址指针,怎么会也释放myobject指向的内存?)
看了看objectlist的类源码也没看出门道,不知我这样理解对不对,大富翁门帮帮忙
var
objectlist:Tobjectlist;
myobject;tmyobject
begin
myobject:= tmyobject.Create;
objectlist:=tobjectlist.Create;
objectlist.Add(myobject);
objectlist.Clear
//or delete
myobject.Free;
end;
运行时出错,是不是objectlist.clear执行后就无需myobjectlist.free?
如果真是这样的话,那又怎么讲啊(Tmyobject.create创建了一个对象,myobject就是指向它
的一个指针,myobject.free就是通过myobject这个指针找到对象的内存地址释放它;
objectlist.Add(myobject),这是由objectlist存储了myobject这个虚的地址指针,clear释放也应该只是释放
myobject这个虚的地址指针,怎么会也释放myobject指向的内存?)
看了看objectlist的类源码也没看出门道,不知我这样理解对不对,大富翁门帮帮忙