class Foo : public QMainWindow
{
MyWidget *alertDlg_;
MyWidget alertDlg2_;
};
第二个字段可能有危险吗?
由于
编辑: 问题的例子:
{
QPushButton button("button");
QWidget widget;
button.setParent(&widget);
} // crash
答案 0 :(得分:2)
是的,因为Qt有自己的内存管理,如果alertDlg2_有父级,你会得到双重删除。
您可以在this article中详细了解qt对象树和所有权。您可以在其中看到,在您编辑的示例中执行的操作并不安全。这就是你遇到崩溃的原因。