什么是 C 中的 vtable

新手上路,请多包涵

可能重复:

为什么我需要虚拟表?

什么是 C++ 中的 vtable?

到目前为止,我知道 vtable 是一个虚拟表,它有一个指向虚拟函数的指针数组。有没有我可以阅读的带有实际实现示例的文章? (任何演练将不胜感激。)

原文由 Simsons 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 686
2 个回答

V 表(或虚拟表)是大多数 C++ 实现进行多态性的方式。对于一个类的每个具体实现,都有一个指向所有虚方法的函数指针表。指向该表(称为虚拟表)的指针作为数据成员存在于所有对象中。当调用虚方法时,我们查找对象的 v-table 并调用适当的派生类方法。

原文由 doron 发布,翻译遵循 CC BY-SA 3.0 许可协议

vTable( _虚拟表_)是动态调度的一个实现细节( virtual 方法)。

有关详细信息,请参阅 C++-Lite-Faq

原文由 phadej 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题