对象指针的问题(50分)

  • 主题发起人 主题发起人 ifeng
  • 开始时间 开始时间
I

ifeng

Unregistered / Unconfirmed
GUEST, unregistred user!
我将若干个对象放在ListA(TList)中。
我要实现一个复制粘贴的过程,于是我用一个ListB作为中转。
选中了ListA中的一个(可能有多选)对象(C1),并复制,此时ListB增加一个对象(C1),
点击粘贴时把ListB中的对象全部增加到ListA中去,复制粘贴过程结束。
但有个问题:我ListB.Add(C1)时,指针指的还是ListA中的C1的地址,然后粘贴时再
ListA.Add(C1)后,此时的两个C1都是同一个地址,所以这样是不对的。
如果ListB.Add(TC.Create),当然是可以的,但对象要Assign,因为是自己写的类,所以
没有Assign方法,另外我加了Assign方法也报错。那能不能用这样一个方法:我新申请一个
地址空间,把C1的地址空间复制过来,行不行?如果行的话,具体又如何用?
请大家帮忙解决。谢谢
 
看不懂,呵呵,帮顶
 
如果是复制, 必须新开辟内存空间, new,或者create。 否则总是指向原来的地址, 除非你用Assign。 这个当然你得自己写。
 
既然TC是自己写的类,加一个复制的方法就好了
 
后退
顶部