例如:
// name.h
Class A {
private:
QLabel *statusLabel;
};
// name.cpp
statusLabel = new QLabel(this);
这是构造函数调用吗?我不这么认为,但如果是 - 为了什么? statusLabel 已经是 QLabel-Class 对象。
答案 0 :(得分:1)
在标题中,您指出A类具有指向QLabel的指针。在cpp文件中,您实际创建了QLabel对象。 “this”是指向创建QLabel的A类对象的指针,指示此对象是QLabel的父对象。但是,A类不是QWidget,因此不应该编译。
答案 1 :(得分:0)
statusLabel = new QLabel(this);
编辑更加精确: -
所以,你正在使用new表达式来分配内存,间接将调用QLabel的构造函数作为参数。
答案 2 :(得分:0)
这是构造函数调用吗?
这是一个 new-expression ,用于创建动态对象。它
QLabel
(指向当前对象的指针)作为参数的构造函数,在该内存中创建一个this
对象; statusLabel
。
statusLabel
已经是QLabel
- 类对象。
不,*
表示它是指针,而不是对象。在将其指定为指向对象(如此行代码所做)之前,它不代表任何对象。分配后,您可以使用它来访问它指向的对象。