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

比如说我在头文件里定义了一个类,请问下面的内容是什么意思?

比如说我在头文件里定义了一个类,请问下面的内容是什么意思?

皈依舞 2022-11-04 22:18:56
class PaintWidget:public QWidget{public:PaintWidget(QWidget*parent=0)}然后在cpp中写PaintWidget::PaintWidget(QWidget*parent):QWidget(parent){}请问 前面的*parent=0 和cpp中的(QWidget*parent):QWidget(parent)是什么意思
查看完整描述

2 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

意思是说,重定义父对象。
如何重定义呢?看parent参数。
当PaintWidget放到某个窗口上的时候,该PaintWidget的父对象就被重定义为该窗口。
但是,由于PaintWidget本身继承于QWidget,那么还需要对QWidget的父对象重定义。PaintWidget通过parent指针来告诉父类QWidget:“我的父对象是该窗口,请把你的父对象也置为那个窗口”。
就是这样。
请注意区分父类和父对象的区别。

查看完整回答
反对 回复 2022-11-08
?
波斯汪

TA贡献1811条经验 获得超4个赞

1.parent=0这句是默认参数列表,就是参数默认值的意思,只要在声明时加上即可。
2.PaintWidget::PaintWidget(QWidget*parent):QWidget(parent)
冒号之前的是使用类作用域限定符引用的函数声明原型,冒号之后的是初始化列表。QWidget(parent) 使用parent指针初始化父类实例的意思。因为派生类的初始化过程中第一步就是调用父类的构造函数初始化父类结构,QWidget(parent) 显示调用了QWidget的一个构造函数。

查看完整回答
反对 回复 2022-11-08
  • 2 回答
  • 0 关注
  • 155 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号