// name.h
Class A {
private:
QLabel *statusLabel;
};
// name.cpp
statusLabel = new QLabel(this);
這是構造函數調用?我不這麼認爲,但如果是 - 爲了什麼? statusLabel已經是QLabel-Class對象。
// name.h
Class A {
private:
QLabel *statusLabel;
};
// name.cpp
statusLabel = new QLabel(this);
這是構造函數調用?我不這麼認爲,但如果是 - 爲了什麼? statusLabel已經是QLabel-Class對象。
這是構造函數調用嗎?
這是一個新表達式,用於創建動態對象。它
this
(指向當前對象的指針)作爲參數在該內存中創建一個QLabel
對象;statusLabel
。
statusLabel
已經QLabel
-Class對象。
不,*
表示它是一個指針,而不是一個對象。直到您將其指定爲指向某個對象(如該行代碼所做的那樣),它並不代表任何對象。分配後,您可以使用它訪問它指向的對象。
statusLabel = new QLabel(this);
編輯,以更精確: -
所以,你正在使用新的表達方式分配內存間接稱之爲QLabel的構造與此作爲參數。
在標題中,您指出類A有一個指向QLabel的指針。在cpp文件中,您實際上創建了QLabel對象。 「this」是指向創建QLabel的類A的對象的指針,指示此對象是QLabel的父對象。但是,類A不是QWidget,所以它不應該編譯。
'statusLabel'是一個**指針**到'QLabel'。它不是一個'QLabel'對象 – Jarod42 2014-11-03 14:44:53