C++虚函数表

检测方法(VS2005):项目命令行加上参数/d1reportAllClassLayout,在编译时选择重新生成,即可查看类的对象布局

总结:

  • 继承方式:非virtual继承:导入各个父类的结构(按照父类声明的顺序,从上到下),自身member在最后   
    • 重写virtual方法:更新该方法最早定义的类的vftable
    • 新的virtual方法:在最左父类的vftable增加
  • 继承方式:有virtual继承:在自身member后增加virtual父类的结构(按照子类继承的顺序从左到右),同时在最前面增加vbtable(如果没有的话),增加一项指向父类结构   
    • 重写virtual方法:更新该方法的最早定义的类的vftable
    • 新的virtual方法:在自身最前面增加vftable(如果没有的话),在自己的vftable增加

     http://yoyo.is-programmer.com/posts/10671.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值