求指教这段C++ 构造函数的理解

MyWidget::MyWidget(QWidget*parent):QWidget(parent),ui(newUi::MyWidget)//这两段的作用是什么?为何声... MyWidget::MyWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::MyWidget) //这两段的作用是什么?为何声明这个构造函数后面还要增加这两段?,ui这里是个指针吗?
{
ui->setupUi(this);
connect(ui->showChildButton, SIGNAL(clicked()),
this, SLOT(showChildDialog()));
}
展开
 我来答
Dcltype
2017-01-06 · TA获得超过352个赞
知道小有建树答主
回答量:350
采纳率:0%
帮助的人:216万
展开全部
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是属于UI类中的指针吧?不会影响MyWidget构造函数的声明吗?
追答
MyWidget::MyWidget和UI::MyWidget不是一个类型的,所以不会影响的
百度网友8ce788f
2017-01-06 · TA获得超过687个赞
知道小有建树答主
回答量:850
采纳率:80%
帮助的人:209万
展开全部
这是构造函数的一种固有写法。叫做成员列表初始化。

括号外的是类的成员。
括号内的是实际初始化参数。
拿括号内的初始化括号外的。
ui是指针。 指向的是新new出的这个对象
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ZZL001
2018-03-30
知道答主
回答量:4
采纳率:0%
帮助的人:2614
展开全部
之前那个答主其实说的很不错,只不过非常简单扼要,理解起来需要一定的辅助资料。谭浩强版本的《C++程序设计》里关于这个用法叫做“用参数初始化表对数据成员初始化”。冒号以前是构造函数,冒号以后通过参数初始化表代替了本应在函数体内的赋值语句。 QWidget(parent)这个貌似和派生类有关,不是非常了解;ui是在MyWidget类中定义的一个成员变量,是指针。至于new Ui::MyWidget这个为什么是一个指针型变量就不清楚了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式