2、 FindDialog::FindDialog(QWidget *parent) :QDialog(parent){ ..............函数}................FindDialog::FindDialog(QWidget *parent) :QDialog(parent)FindDialog是一个类 FindDialog(QWidget *parent) 是一个类成员函数 :QDialog(parent)那这个是什么意思???
#################################################
C++就这点不好,好好的非把句子搞到{}外面来。 FindDialog:: FindDialog(QWidget *parent) :QDialog(parent){} 类名 函数名 函数名 确切的说就是 调用 这个函数FindDialog(QWidget *parent) ,首先在开始先用所给的参数去调用QDialog(parent) ,然后再执行{}里的句子 你可以认为是这样: FindDialog::FindDialog(QWidget *parent) { QDialog(parent); ...... } 这个QDialog(parent)函数不是哪个随便的函数,而是FindDialog类中的或FindDialog从他父类中继承来的函数。 之所以C++这样做大概和他的程序结构组织方式有关系。如果真像我上面那样去写,那么这个QDialog(parent)可能提示未定义,或者可以改成这样: FindDialog::FindDialog(QWidget *parent) { this->QDialog(parent); ...... } 在任何其它语句之前用THIS指针调用类的函数,都可以写到前面去
########################################################
3、
MainDialog::MainDialog(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainDialog)
他只继承了QMainWindow,后面的ui(new Ui::MainDialog)是C++的initialization list的用法,表示给MainWindow的ui成员赋值,使ui指向堆上new的一个Ui::MainDialog对象