了解成员初始化列表

chu*_*Dub 2 c++ qt class

这是Qt mainwindow.cpp中自动生成的函数代码.

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{

}
Run Code Online (Sandbox Code Playgroud)

这会是一回事吗?

MainWindow::MainWindow(QWidget *parent)
{
    QMainWindow = parent;
    ui = new Ui::MainWindow;
}
Run Code Online (Sandbox Code Playgroud)

Mic*_*ker 5

不,我认为QMainWindow是基类,所以QMainWindow=parent根本不是替代品.至于ui作业.在第一种情况下,它将用初始化new Ui::MainWindow,而在第二种片段中,它将在初始化后分配.在复杂对象的情况下,它可能会导致显着的性能损失,并且在构造字符串之后也可能无法正确初始化对象.