多重继承与虚函数
创始人
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类型信息中保存)

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

相关内容

热门资讯

年入10亿的网红按摩仪,要IP... “健康焦虑”这个赛道,挺魔幻的。作者 |渡尘来源 |投资家(ID:touzijias)“健康焦虑”这...
康乐卫士:子公司所欠中信银行昆... 新京报贝壳财经讯(记者黄鑫宇)12月20日,北交所上市公司北京康乐卫士生物技术股份有限公司(即“康乐...
觅睿科技“纽带式”股权激励:“... 本文来源:时代商业研究院 作者:彭元重来源|时代商业研究院作者|彭元重编辑|郑琳前有同行IPO折戟,...
港股打新亏钱!4只新股集体破发... 年底港股新股市场出现罕见一幕,今日港股四只新股上市首日集体破发。截至收盘,明基医院(02581.HK...
或冲刺第四家股份行AIC!光大... 全文共1293字,阅读全文约需3分钟据国家金融监管总局发布的《关于进一步扩大金融资产投资公司股权投资...