【发布时间】:2011-04-03 01:34:04
【问题描述】:
什么是 C++ 中的 vtable?
到目前为止,我知道 vtable 是一个虚拟表,其中包含指向虚拟函数的指针数组。有没有我可以阅读的带有实际实现示例的文章? (任何演练将不胜感激。)
【问题讨论】:
-
除非您打算编写编译器,否则此信息与理解 C++ 无关。
-
太糟糕了,这个被认为是重复的。这个问题的公认答案比“原始”的答案要好。
什么是 C++ 中的 vtable?
到目前为止,我知道 vtable 是一个虚拟表,其中包含指向虚拟函数的指针数组。有没有我可以阅读的带有实际实现示例的文章? (任何演练将不胜感激。)
【问题讨论】:
V 表(或虚拟表)是大多数 C++ 实现实现多态性的方式。对于一个类的每个具体实现,都有一个指向所有虚方法的函数指针表。指向该表(称为虚拟表)的指针作为数据成员存在于所有对象中。当调用虚方法时,我们会查找对象的 v-table 并调用相应的派生类方法。
【讨论】:
vTable(virtual table)是动态调度的一个实现细节(virtual方法)。
更多详情请见C++-Lite-Faq。
【讨论】:
尽管如此,它并不是标准的 C++ 术语。它只是实现用来实现虚函数/动态绑定的一个实现细节
【讨论】: