当前位置: 代码迷 >> C++ >> 大家帮小弟我看看这个能不能使用默认构造函数
  详细解决方案

大家帮小弟我看看这个能不能使用默认构造函数

热度:5448   发布时间:2013-02-26 00:00:00.0
大家帮我看看这个能不能使用默认构造函数?
本帖最后由 qualcode 于 2013-01-31 18:29:52 编辑
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);可是还是可以使用默认构造函数的
  相关解决方案