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;
}