QT问题中关于parent的一个问题

比如说我在头文件里定义了一个类classPaintWidget:publicQWidget{public:PaintWidget(QWidget*parent=0)}然后... 比如说我在头文件里定义了一个类
class PaintWidget:public QWidget
{
public:
PaintWidget(QWidget*parent=0)
}
然后在cpp中写
PaintWidget::PaintWidget(QWidget*parent):QWidget(parent)
{}请问 前面的*parent=0 和cpp中的(QWidget*parent):QWidget(parent)是什么意思
展开
 我来答
sunnyfulin
推荐于2017-11-25 · TA获得超过465个赞
知道小有建树答主
回答量:244
采纳率:0%
帮助的人:191万
展开全部
意思是说,重定义父对象。
如何重定义呢?看parent参数。
当PaintWidget放到某个窗口上的时候,该PaintWidget的父对象就被重定义为该窗口。
但是,由于PaintWidget本身继承于QWidget,那么还需要对QWidget的父对象重定义。PaintWidget通过parent指针来告诉父类QWidget:“我的父对象是该窗口,请把你的父对象也置为那个窗口”。
就是这样。。。
请注意区分父类和父对象的区别。
匿名用户
2013-03-11
展开全部
1.parent=0这句是默认参数列表,就是参数默认值的意思,只要在声明时加上即可。

2.PaintWidget::PaintWidget(QWidget*parent):QWidget(parent)
冒号之前的是使用类作用域限定符引用的函数声明原型,冒号之后的是初始化列表。QWidget(parent) 使用parent指针初始化父类实例的意思。因为派生类的初始化过程中第一步就是调用父类的构造函数初始化父类结构,QWidget(parent) 显示调用了QWidget的一个构造函数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式