gpt4 book ai didi

C++(虚拟)函数表

转载 作者:搜寻专家 更新时间:2023-10-31 01:15:04 28 4
gpt4 key购买 nike

C++ 虚函数表是仅用于确定调用虚函数时应该执行哪一段代码,还是在运行时有其他用途?

在维基百科上,它列出了“动态调度”作为一个原因,但没有深入了解 C++ 的更多细节......

最佳答案

一些实现将指向 RTTI 代码(typeiddynamic_cast、...)使用的信息指针放在 vtable 的一个槽中(参见此处关于 Itanium ABI , g++ ABI 所基于的)。

(实际上,如果您阅读 Itanium ABI 规范,它会稍微复杂一些,但这是一般的想法)

此外,正如您从链接文档中看到的那样,还有一些东西可以访问基类的数据,在调用基类方法时执行指针调整,......,主要是“复杂”对象层次结构中需要的东西(多重继承、虚拟基类,...),因为在经典的单继承场景中,派生类的布局很简单,不需要大惊小怪。

关于C++(虚拟)函数表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10524678/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com