【发布时间】:2014-11-08 12:32:11
【问题描述】:
我一直在阅读 Qwidget 的所有权并删除它们。 例如:http://qt-project.org/doc/qt-4.8/objecttrees.html
这表示“您也可以自己删除子对象,它们会将自己从父对象中删除”
但是,我看到很多示例在删除父项之前将其设置为 null。 例如:
if (widget != NULL)
{
layout->removeWidget(widget);
widget->setParent(NULL);
delete widget;
}
setParent(NULL); 有需要吗?
从这里开始,我有什么理由不能做一个
delete layout->itemAt(i);
或
delete layout->takeAt(i);
事实上,最后两者之间有什么真正的区别吗? 当然,我假设我所有的对象都在堆上。
【问题讨论】:
标签: c++ qt parent-child qwidget delete-operator