可能重复:
为什么我需要虚拟表?
什么是 C++ 中的 vtable?
到目前为止,我知道 vtable 是一个虚拟表,它有一个指向虚拟函数的指针数组。有没有我可以阅读的带有实际实现示例的文章?(任何演练将不胜感激。)
可能重复:
为什么我需要虚拟表?
什么是 C++ 中的 vtable?
到目前为止,我知道 vtable 是一个虚拟表,它有一个指向虚拟函数的指针数组。有没有我可以阅读的带有实际实现示例的文章?(任何演练将不胜感激。)
V 表(或虚拟表)是大多数 C++ 实现进行多态性的方式。对于一个类的每个具体实现,都有一个指向所有虚方法的函数指针表。指向该表(称为虚拟表)的指针作为数据成员存在于所有对象中。当调用虚方法时,我们查找对象的 v-table 并调用适当的派生类方法。
vTable(虚拟表)是动态调度(virtual
方法)的实现细节。
有关详细信息,请参阅C++-Lite-Faq。
尽管如此,它并不是标准的 C++ 术语。它只是实现用来实现虚函数/动态绑定的实现细节