Qt中新建類構造函數的初始化參數列表


使用Qt-creator自動生成一個窗體應用程序時會自動創建一個新的類,我的程序中名為MyDialog,類的定義為:

 1 #ifndef MYDIALOG_H
 2 #define MYDIALOG_H
 3 
 4 #include <QDialog>
 5 
 6 namespace Ui {
 7 class MyDialog;
 8 }
 9 
10 class MyDialog : public QDialog
11 {
12     Q_OBJECT
13 
14 public:
15     explicit MyDialog(QWidget *parent = 0);
16     ~MyDialog();
17 
18 private:
19     Ui::MyDialog *ui;
20 };
21 
22 #endif // MYDIALOG_H

相應的構造函數為:

1  1 //構造函數
2  2 MyDialog::MyDialog(QWidget *parent) :
3  3     QDialog(parent),
4  4     ui(new Ui::MyDialog)
5  5 {
6  6     ui->setupUi(this);
7  }

其中,構造函數:MyDialog::MyDialog(QWidget *parent) : QDialog(parent),ui(new Ui::MyDialog){......}形式中,“::”前的MyDialog表示類名,“::”后的MyDialog為成員函數,其名稱與類相同,表示該類的構造函數,(QWidget *parent)為該構造函數的參數。“:”之后的部分為構造函數的初始化參數列表,其中QDialog(parent)為派生類MyDialog顯式調用父類QDialog的構造函數,並傳參,調用順序是先調用父類構造函數,再調用派生類的構造函數,若不寫調用父類的默認構造函數。 ui(new Ui::MyDialog)表示使用類內初始值對ui進行初始化,這部分可以放到函數體中實現,成為:

1 MyDialog::MyDialog(QWidget *parent) : QDialog(parent)
2 {
3     ui = new Ui::MyDialog;
4     ui->setupUi(this);
5 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM