31

可能重复:
为什么我需要虚拟表?

什么是 C++ 中的 vtable?

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

4

3 回答 3

39

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

于 2010-08-24T09:54:06.307 回答
5

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

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

于 2010-08-24T09:03:55.627 回答
0

尽管如此,它并不是标准的 C++ 术语。它只是实现用来实现虚函数/动态绑定的实现细节

于 2010-08-24T09:12:57.540 回答