为变量分配对象引用

sps*_*pli -1 delphi free reference object assign

我有一个关于在这里分配的问题,我想知道

  1. 是否Assign制作整个对象的副本和
  2. 我想知道是否FTEA.Objects[0]也被释放了.

我想复制一份,FTEA.Objects[0]当我获得自由时ObjCur,我不打算自由FTEA.Objects[0]- 不确定这样做的正确方法,需要你的帮助,谢谢:

function xxxxxxxxxxxxxxxxxxxxxxxx
var 
  curQuo, tempQuo:TXX_TEA;
begin
  curQuo :=TXX_TEA(FTEA.Objects[0]);
  if xxxxxxxxx then
  begin
    tempQuo := TXX_TEA.Create();
    tempQuo.Assign(curQuo);   // Question 1: Assign copy the whole object value or not
    objCur.AddQuo(tempQuo)
  end
  else
    TXX_TEA(objCur.Quos[0]).Assign(curQuo);
  end;

  finally
    objCur.Free; // Question 2: FTEA.Objects[0] is freed or not
  end;
end
Run Code Online (Sandbox Code Playgroud)

Nat*_*lls 5

不,释放一个已从另一个对象分配的对象不会释放源对象.

如何分配功能完全取决于课程.每个类必须实现Assign,然后调用inherited并在类兼容时从源到目标分配自己的自定义属性.我建议查看这些类的源代码,以检查它们是否实现了Assign.

  • Spspli,而不是问一堆陌生人他们认为*将会发生什么,为什么不运行你的代码并*看*是否将属性复制到新对象?你已经被告知应该发生什么,所以检查一下.这是编程,而不是哲学. (7认同)