(class * object;)和(object = new Class();)之间有什么区别?

时间:2019-03-02 13:32:24

标签: c++ qt

我听不懂。为什么我们都需要?有什么区别?

QTimer *timerobject;
timerobject = new QTimer(this);

1 个答案:

答案 0 :(得分:1)

第一行是声明-在代码中,您声明了timerObject为指向QTimer类型的指针。

在第二行中,您执行了许多操作:为QTimer变量分配内存,对其进行构造,然后分配 >该QTimer变量的地址指向您在第一行中创建的指针变量。

此外,您可以将其写成一行:

QTimer * timerobject = new QTimer(this);

这两行都是必需的,因为如果只声明该对象,它将没有任何值。它只会指向任何内容(nullptr)。如果您不声明它,则编译器将不知道什么是timerobject,因此它将无法为其分配任何值。