mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
这一行ui(new Ui::MainWindow),为什么可以使用默认构造函数初始化?
因为MainWindow类中申明了非默认的构造函数explicit MainWindow(QWidget *parent = 0);
默认的构造函数不是不能使用了吗?
默认构造函数
------解决方案--------------------------------------------------------
explicit MainWindow(QWidget *parent = 0);你在这里声明构造函数的时候使用了默认参数,所以你的这个构造函数其实有两个功能,一个是带一个参数的,一个是不带参数的就是和默认你构造函数一样的,所以即使你在MainWindow类中申明了非默认的构造函数explicit MainWindow(QWidget *parent = 0);可是还是可以使用默认构造函数的