#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
放在这里?
答案 0 :(得分:3)
基本上你要说的是,除非你传递另一个值,否则函数(或本例中的构造函数)将被调用,父级为0。
当您使用MyWidget(QWidget *parent);
作为构造函数时,您必须将其称为MyWidget widget(0);
答案 1 :(得分:1)
你不必在那里放零。 C ++允许您为参数设置默认值。在这种情况下,如果在未指定参数的情况下调用构造函数,则参数parent
将默认为0。
答案 2 :(得分:0)
不需要把它放在那里,但它是默认值。如果没有将任何值传递给构造函数,则将“0”作为值。在某些情况下,程序员可以使事情变得容易一些。