c++构造函数问题

发布于 2024-10-21 10:01:02 字数 744 浏览 2 评论 0原文

#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

#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();
}

For this line : MyWidget(QWidget *parent = 0);
why we need to put = 0 here??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

同尘 2024-10-28 10:01:02

它称为默认参数

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

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

It is called an Default parameter

Basically you are saying unless you pass another value, the function (or constructor in this case) will be called with parent as 0.

When you'd had MyWidget(QWidget *parent); as constructor, you'd had to call it like MyWidget widget(0);

中二柚 2024-10-28 10:01:02

您不必在那里输入零。 C++ 允许您为参数设置默认值。在这种情况下,如果调用构造函数时未指定参数,则参数 parent 将默认为 0。

You do not have to put zero there. C++ allows you to put default value for a parameter. In this case, parameter parent will default to 0 if the constructor is invoked without specifying an argument.

陌伤ぢ 2024-10-28 10:01:02

不需要把它放在那里,但它是默认值。如果您不向构造函数传递任何值,它将采用“0”作为值。在某些情况下,它使程序员的事情变得更容易一些。

Don't need to put it there, but it's a default value. If you don't pass any value to the constructor, it will take the '0' as value. It's making things a bit easier in some cases for the programmer.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文