C++ C++;迭代时删除树项

C++ C++;迭代时删除树项,c++,recursion,tree,tree-traversal,C++,Recursion,Tree,Tree Traversal,我有一个基于树的场景。 更新所有对象的迭代如下所示: void IUpdatableTreeItem::updateTree(float pDt) { updateSelf(pDt); ///< pure virtual for (int i = 0; i < (int)d_children.size(); ++i) { if (auto* pUpdatableChild = dynamic_cast<IUpdatableTreeItem*&g

我有一个基于树的场景。 更新所有对象的迭代如下所示:

void IUpdatableTreeItem::updateTree(float pDt)
{
  updateSelf(pDt); ///< pure virtual

  for (int i = 0; i < (int)d_children.size(); ++i)
  {
    if (auto* pUpdatableChild =
      dynamic_cast<IUpdatableTreeItem*>(d_children[i]))
    {
      pUpdatableChild->updateTree(pDt);
    }
  }
}
ITreeItem::~ITreeItem()
{
  for (auto child : d_children)
    delete child;
}

这意味着在删除父对象后,我不能引用当前obj的d_子对象。

有,您可以在那里发布此类问题。@GreenTree这不适合对当前的措辞进行代码检查。请看一看。看看代码审查中有哪些问题,并阅读问题的最后一句。好的,我重新措辞了问题,以避免一般的沉默。@Anton Egorov,如果父母被摧毁,其子女将如何。?请提供有关对象体系结构的更多信息。
ITreeItem::~ITreeItem()
{
  for (auto child : d_children)
    delete child;
}