我的问题是,我有一个作为自身对象的类。当我尝试编写作业或复制方法时,我会以一种“classception”结束
缩短课程:
class Node
{
public:
Node(QString name, Node *parent = 0);
~Node(void);
// copy
Node(const Node &srcNode);
// assignment
Node& operator=(const Node &srcNode);
private:
QString name;
QList<Node*> children;
Node *parent;
};
和方法(只有一个,因为它几乎相同)
// Copy
Node::Node(const Node &srcNode)
{
name = srcNode.name;
for(int i = 0; i < srcNode.children.size(); i++)
{
children.replace(i, srcNode.children.at(i));
}
// how is it done?
parent = srcNode.parent;
}
我的问题出在方法的最后一行。如您所见,父对象也是 Node 类型的对象,所以我最终会陷入无限循环。
我如何正确地深度复制这个类?
希望有人能给我提示:)
问候