Qt对象实例化查询

时间:2012-04-03 14:38:51

标签: c++ qt object qt4

QObject *obj;
...
if ( /* obj is already instantiated */ ) {
    ;
} else {
    obj = new QObject();
}

我的查询是 if

的条件

3 个答案:

答案 0 :(得分:5)

1)将对象指针初始化为NULL

2)在if声明

中检查是否为NULL
QObject *obj = NULL;
...
if ( obj != NULL ) {
    ;
} else {
    obj = new QObject();
}

答案 1 :(得分:0)

QObject *obj = 0;

// ...

if (!obj) obj = new QObject();

注意:不保证obj不是dangling pointer

答案 2 :(得分:0)

使用QPointer课程。 http://qt-project.org/doc/qt-4.8/qpointer.html#data

每当你拨打deleteLater();时,它都会将其设置为0,而不是你可以检查它。

QPointer<QWidget> someWidget = 0;