0

我正在尝试深度复制我的变量:

QVector<PetTeam*> petTeam;

这个 PetTeam 类还有另一个包含宠物的 QVector 等等。我希望将它们全部深度复制,以便可以将它们用于极小值 AI 中的状态,但到目前为止,我一直无法正确地深度复制它。

如果有人可以提供有关在这种情况下进行深度复制的正确方法的任何见解,将不胜感激!

4

1 回答 1

1

如果要PetTeam自动复制所有对象,则需要将向量声明为QVector<PetTeam> petTeam. 它需要PetTeam有一个没有参数的构造函数和一个复制构造函数。它们是自动生成的,但如果PetTeam包含任何无法轻易复制的信息(例如文件处理程序、指向手动分配的内存的指针等),您应该重新实现它们

另一种选择是手动复制您的对象,即遍历列表并使用为每个旧对象创建一个新对象new PetTeam(...),然后将它们放入新列表中。

于 2013-09-29T12:54:34.043 回答