为了账号安全,请及时绑定邮箱和手机立即绑定

为何声明这个构造函数后面还要增加这两段?,ui这里是个指针吗?

为何声明这个构造函数后面还要增加这两段?,ui这里是个指针吗?

C++
临摹微笑 2022-07-14 16:11:31
MyWidget::MyWidget(QWidget *parent) :QWidget(parent),ui(new Ui::MyWidget) //这两段的作用是什么?{ui->setupUi(this);connect(ui->showChildButton, SIGNAL(clicked()),this, SLOT(showChildDialog()));}
查看完整描述

3 回答

?
www说

TA贡献1775条经验 获得超8个赞

MyWidget::MyWidget(QWidget *parent) : QWidget(parent),ui(new Ui::MyWidget){}
这是构造函数的初始化列表方式,这也是派生类构造函数必须采用的形式
MyWidget是Qwidget的子类,QWidget(parent)是调用了QWidget的构造函数,
这个ui应该是是UI::MyWidget类型的指针
ui(new UI::MyWidget)相当于 ui=new UI::MyWidget;

查看完整回答
反对 回复 2022-07-18
?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

这是构造函数的一种固有写法。叫做成员列表初始化。
括号外的是类的成员。
括号内的是实际初始化参数。
拿括号内的初始化括号外的。
ui是指针。 指向的是新new出的这个对象

查看完整回答
反对 回复 2022-07-18
?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

冒号以前是构造函数,冒号以后通过参数初始化表代替了本应在函数体内的赋值语句。 QWidget(parent)这个貌似和派生类有关,不是非常了解;ui是在MyWidget类中定义的一个成员变量,是指针。至于new Ui::MyWidget这个为什么是一个指针型变量就不清楚了。

查看完整回答
反对 回复 2022-07-18
  • 3 回答
  • 0 关注
  • 158 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信