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

MyWidget::MyWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::MyWidget) //这两段的作用是什么?
{
ui->setupUi(this);
connect(ui->showChildButton, SIGNAL(clicked()),
this, SLOT(showChildDialog()));
}

临摹微笑
浏览 192回答 3
3回答

www说

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;

有只小跳蛙

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

拉风的咖菲猫

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