虚基类下的虚函数表

tonysdu1981 2007-12-08 04:46:31
包含虚函数的类会有一个虚函数表,这时类里会有一个VPTR,指向虚函数表,类的大小会增加4,如果是虚基类继承,那么子类有几个虚指针呢?
如: class A
{
virtul fun();
......
}
class B:virtul public A
{
......
}
class C:virtul public A
{
.......
}
class D:public B,public C
{
.....
}
这时,类D的大小应该是多少?里面包含多少个虚指针呢?希望有知道的朋友给说声。谢谢,小弟分数太低,就不散了,希望大家原谅
...全文
126 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
taodm 2007-12-10
  • 打赏
  • 举报
回复
还是自己看看《深度探索C++对象模型》吧。
讨论这个问题,对实际编程没啥意义的,基本属于纯满足好奇心,就不要在上面花太多时间了。
飞哥 2007-12-08
  • 打赏
  • 举报
回复
找到一句话:出自《c++应用程序性能优化》
为了支持虚拟继承,不同的编译器的做法会有所不同,在Visualc++中通过添加一个虚基类表的指针来实现(类似于虚函数指针)
飞哥 2007-12-08
  • 打赏
  • 举报
回复
还会再加个虚表
花花呀123456 2007-12-08
  • 打赏
  • 举报
回复
还是一个,可以参考《深度探索C++对象模型》

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧