多重继承与虚函数
创始人
2025-05-31 16:13:26

多重继承与虚函数联系起来会出现很多的问题:

1.继承类有几份虚表?

2.继承类新添加的虚函数会放到基类1的虚表?还是基类2的虚表?还是都放?

3.将基类对象指针动态转化为基类指针的大概过程?

我们通过下面的例子来一一解答:

两个基类Base1,Base2,一个派生类Test公有继承这两个类,既有重写的虚函数,也有新添加的虚函数

1.继承类有几份虚表?

我们运行一下程序来看一下监视器:

结论:当派生类继承了多少个基类,就会有几份虚表。

2.继承类新添加的虚函数会放到基类1的虚表?还是基类2的虚表?还是都放?

结论:继承类中新添加的虚函数只会添加到第一个继承的基类的虚表之中

3.将基类对象指针动态转化为基类指针的大概过程?

将先继承的基类指针动态转化为继承类指针

将后继承的基类指针动态转化为继承类指针

总结:

  1. 在多重继承中,继承类共有继承个数个虚表

  1. 继承类新添加的虚函数会放在第一个继承的基类虚表中

  1. 在多重继承中,将基类指针动态转化为继承类指针时

先去查看此基类对象的虚表,判断是否可以转化

如果不可以:返回NULL

如果可以:

①获取指针偏移量信息(type_info类型信息中保存)

②将指针向上偏移偏移量大小的字节,并返回

相关内容

热门资讯

「玩家攻略科普」大玩家福建麻将... 您好:大玩家福建麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9951342】很多玩家在这...
分享实测“皇豪互众牛牛透视挂辅... 您好:皇豪互众牛牛这款游戏可以开挂,确实是有挂的,需要软件加微信【4194432】,很多玩家在皇豪互...
最新消息“白虎大厅有没有辅助 ... 您好:白虎大厅这款游戏可以开挂,确实是有挂的,需要软件加微信【3716361】,很多玩家在永和备厅这...
玩家实测“新道游斗牛是不是有透... 您好:新道游斗牛这款游戏可以开挂,确实是有挂的,需要软件加微信【6355786】,很多玩家在新道游斗...
重大通报“心悦辽宁麻将是不是有... 您好:心悦辽宁麻将这款游戏可以开挂,确实是有挂的,需要软件加微信【8700483】,很多玩家在心悦辽...