NodeとNodeContainerの2つのクラスがあります。
class Node: public QObject
{
NodeContainer* parent;
}
class NodeContainer : QObject
{
bool deleteChild(Node*child)
{
if(childNodes->remove(child))
{
deleteLater(child);
}
}
QList<Node*> childNodes;
}
ノードは親を持つことも持たないこともできます。Nodeクラスの破棄を実装するためのより良い方法は何ですか?
1)親にアクセスし、そこから自分自身を破壊します
destroy()
{
if(parent !=0)
{
parent.deleteChild(this);
}
else
{
deleteLater(this);
}
}
2)信号を発し、後で親にそれを破壊させます
destroy()
{
if(parent !=0)
{
//Once the parent receives it, the parent will delete the child.
emit parentYouHaveToDeleteChild(this);
}
else
{
deleteLater(this);
}
}