【发布时间】:2015-10-22 08:50:12
【问题描述】:
我们通常编写拥有其他 QObject 的 QObject 派生类,如下所示:
class Foo: public QObject {
Q_OBJECT
public:
Foo(QObject *parent = nullptr)
: QObject(parent), bar(nullptr)
{
bar = new Bar(this);
}
private:
Bar *bar;
};
但是,在查看同事的代码时,我发现了这种模式:
class Foo: public QObject {
Q_OBJECT
public:
Foo(QObject *parent = nullptr)
: QObject(parent)
{ }
private:
Bar bar;
};
它似乎按预期工作,但这样做实际上是否安全,除非有明显的“不要bar->deleteLater()”?
【问题讨论】: