虚拟表是C ++标准的一部分吗?

now*_*wox 4 c++ polymorphism run-time-polymorphism

我正在阅读有关C ++中后期绑定多态性的实现的信息,并且了解了虚拟表和虚拟指针。

然后,我搜索了C ++标准(ISO / IEC 14882:2011),以获取有关应如何实现此行为的更多信息。

不幸的是,除了第10.3节中的虚函数定义外,我在这个庞大的标准中没有发现任何相关,因此我认为__vptrGCC使用了虚函数的概念,但是可以以不同的方式实现。

是否有描述如何实现虚拟方法的标准或论文?

Bat*_*eba 5

不,它们不是标准定义的。相反,它们是实现概念,而不是像stackheap

该标准有助于以某种方式实现多态,例如,如果a的第一个成员变量class的地址是该类的实例的地址,则该地址不必是该类的实例的地址。多态类型。