zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    佛经中的 云何梵 什么意思?
    论节拍器的重要性,一定要习惯使用。
    Linux文件系统分析
    uboot启动内核分析
    Linux内核启动流程分析
    Linux内核配置机制与编译过程分析
    Linux内核源码目录结构分析
    Kconfig文件分析
    Ubuntu下安装make
    Ubuntu下交叉编译器gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12的安装和使用
  • 原文地址:https://www.cnblogs.com/blackeyes/p/5125811.html
Copyright © 2011-2022 走看看