• 6061阅读
  • 6回复

求助高人指点!!!这个调用基类的构造函数 ji w;这个parent到底是怎么传递的? [复制链接]

上一主题 下一主题
离线haofan2009
 
只看楼主 倒序阅读 楼主  发表于: 2011-04-05
ji::ji(QWidget *parent) :QWidget(parent)  
这个调用基类的构造函数 中 :QWidget(parent)中parent是从哪里来传递来的?程序中也没见有不带参数的默认构造函数!而且主程序中就这样声明了
对象ji w;         w也没参数,根据C++的规定如果自己定义一个构造函数那么就不会再生成默认的无参数的构造函数,所以不知道这个无参数的w咋传递地!
这个到底是怎么传递的?
[ 此帖被haofan2009在2011-04-05 21:26重新编辑 ]
离线dbzhang800

只看该作者 1楼 发表于: 2011-04-05
引用楼主haofan2009于2011-04-05 16:24发表的 求助高人指点!!!这个调用基类的构造函数 ji w;这个parent到底是怎么传递的? :
ji::ji(QWidget *parent) :QWidget(parent)  
这个调用基类的构造函数 中 :QWidget(parent)中parent是从哪里来传递来的?程序中也没见有不带参数的默认构造函数!而且主程序中就这样声明了
对象ji w;         w也没参数
这个到底是怎么传递的?


这个,你不妨先认真看看你的 ji 这个类的定义!肯定有默认参数!

题外:找本C++的书看看吧
离线roywillow

只看该作者 2楼 发表于: 2011-04-05
ji::ji(QWidget *parent) :QWidget(parent)  
显然,构造QWidget时用的parent是ji的构造函数执行的时候的参数parent传递过去的……
也就是说,QWidget进行构造的时候利用的是ji的parent
至于ji w;这一句没有参数,你检查一下头文件应该会发现ji构造函数的声明中带着个“parent=0”的默认值,也就是说这里声明的w利用了parent的默认值
不过类有个默认的构造函数,不过我记得只要自己有一个构造函数的声明,默认的就不用了来着……
[ 此帖被roywillow在2011-04-05 17:11重新编辑 ]
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线haofan2009
只看该作者 3楼 发表于: 2011-04-05
回 2楼(roywillow) 的帖子
ENen谢谢你,的确有个parent=0”的,就是搞不明白,ji类定义中只有一个带参数的构造函数,根据C++的规定如果自己定义一个构造函数那么就不会再生成默认的无参数的构造函数,所以不知道这个无参数的w咋传递地!
离线haofan2009
只看该作者 4楼 发表于: 2011-04-05
回 1楼(dbzhang800) 的帖子
谢谢,看了确实没有默认构造函数
离线haofan2009
只看该作者 5楼 发表于: 2011-04-06
还有没不同的观点?
离线roywillow

只看该作者 6楼 发表于: 2011-04-06
Re:回 2楼(roywillow) 的帖子
引用第3楼haofan2009于2011-04-05 20:12发表的 回 2楼(roywillow) 的帖子 :
ENen谢谢你,的确有个parent=0”的,就是搞不明白,ji类定义中只有一个带参数的构造函数,根据C++的规定如果自己定义一个构造函数那么就不会再生成默认的无参数的构造函数,所以不知道这个无参数的w咋传递地!

既然都有个parent=0,那么当你不提供参数的时候自然就采用默认参数了……
QWidget的parent=0的话就会自动成为一个窗口
[ 此帖被roywillow在2011-04-06 11:24重新编辑 ]
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
快速回复
限100 字节
 
上一个 下一个