什么是C ++中的Vtable

时间:2010-08-24 09:01:23

标签: c++ vtable

  

可能重复:
  why do I need virtual table?

C ++中的vtAble是什么?
要知道vtable是一个虚拟表,它有一个指向虚函数的指针数组。是否有一篇实际实施的文章? (任何走过将不胜感激)

3 个答案:

答案 0 :(得分:18)

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

答案 1 :(得分:3)

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

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

答案 2 :(得分:1)

尽管它值得,但它不是标准的C ++术语。它只是实现用于实现虚函数/动态绑定的实现细节