打印

构造函数问题

[复制链接]
891|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gxgclg|  楼主 | 2012-12-28 22:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
火箭球迷| | 2012-12-28 22:54 | 只看该作者
构造函数virtual没意义

使用特权

评论回复
板凳
dfsa| | 2012-12-28 23:17 | 只看该作者
除了父类构造函数中子类尚未初始化外,

难道你想直接调用子类构造函数?

那父类成员怎么初始化?

使用特权

评论回复
地板
无冕之王| | 2012-12-28 23:23 | 只看该作者
主要原因在于在类的继承体系内,构造函数的调用顺序是从基类到派生类,逐层构造。在构造的过程中,vptr被指向本层的vtable。而虚函数的行为依赖于vptr。因此,在本层构造函数中,编译器无法获知派生类的任何信息,因此无法形成正确的vtable访问。

使用特权

评论回复
5
dfsa| | 2012-12-30 20:24 | 只看该作者
无冕之王 发表于 2012-12-28 23:23
主要原因在于在类的继承体系内,构造函数的调用顺序是从基类到派生类,逐层构造。在构造的过程中,vptr被指 ...

很有道理

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

177

主题

1653

帖子

1

粉丝