我正在阅读有关C ++中后期绑定多态性的实现的信息,并且了解了虚拟表和虚拟指针。
然后,我搜索了C ++标准(ISO/IEC 14882:2011),以获取有关应如何实现此行为的更多信息。
不幸的是,除了第10.3节中的虚函数的定义之外,我没有发现与这个庞大的标准相关的任何内容,因此我认为__vptr
的概念已由GCC使用,但可以以不同的方式实现。
是否存在描述应如何实现虚拟方法的标准或论文?
答案 0 :(得分:5)
不,它们不是标准定义的。相反,它们是实现概念,而不像 stack 或 heap 。
该标准有助于允许以某种方式执行多态,例如,class
的第一个成员变量的地址不必是实例的地址。如果该类是多态类型,则该类。