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

时间:2019-04-23 13:45:41

标签: c++ polymorphism run-time-polymorphism

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

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

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

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

1 个答案:

答案 0 :(得分:5)

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

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