私の問題は、それ自体のオブジェクトとして持っているクラスがあるということです。割り当てまたはコピーメソッドを書き込もうとすると、一種の「クラスセプション」で終わります。
短縮されたクラス:
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;
};
と方法(ほとんど同じなので1つだけ)
// 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型のオブジェクトであるため、無限ループに陥ります。
このクラスを正しくディープコピーするにはどうすればよいですか?
誰かが私にヒントをくれることを願っています:)
よろしく