#include <QApplication>
#include <QFont>
#include <QPushButton>
#include <QWidget>

class MyWidget : public QWidget
{
public:
    MyWidget(QWidget *parent = 0);
};

MyWidget::MyWidget(QWidget *parent)
    : QWidget(parent)
{
    setFixedSize(200, 120);

    QPushButton *quit = new QPushButton(tr("Quit"), this);
    quit->setGeometry(62, 40, 75, 30);
    quit->setFont(QFont("Times", 18, QFont::Bold));

    connect(quit, SIGNAL(clicked()), qApp, SLOT(quit()));
}

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    MyWidget widget;
    widget.show();
    return app.exec();
}

对于此行:MyWidget(QWidget *parent = 0);为什么我们需要在这里放置= 0

最佳答案

它称为Default parameter

基本上,您是说除非您传递另一个值,否则函数(或本例中的构造函数)将被调用,并且parent为0。

当您将MyWidget(QWidget *parent);作为构造函数时,您必须像MyWidget widget(0);那样调用它

关于c++ - C++构造函数问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5281517/

10-13 01:19