我到处都看到了如下的 Qt GUI 语法:
myDialog::myDialog(QWidget *parent, Qt::WFlags flags):QDialog(parent, flags)
{
QPushButton *button = new QPushButton("&Download", this);
QVBoxLayout *layout = new QVBoxLayout(this);
//something that can throw here
layout ->addWidget(button );
setLayout(layout);
}
我一直想知道如果发生异常,这是否会泄漏,因为我作为按钮和布局的父级提供的“this”没有完全构建,因此它可能不会破坏它的子级。
我在 MSVC2010 Qt4.8.3 中进行了尝试,看起来一旦完全创建了基本 QObject 类(当然首先完成),就可以将“this”传递给构造函数中的其他对象,它们将被销毁正确。
我还没有在 Qt 文档中找到可以保证这一点的地方,有人可以指出我,这样我就可以保证这在未来不会改变?