gpt4 book ai didi

c++ - vptr 是否曾经位于对象的开头?

转载 作者:太空狗 更新时间:2023-10-29 20:05:35 25 4
gpt4 key购买 nike

根据 MSDN,__RTDynamicCast() function用于在 Visual C++ 中实现 dynamic_cast。它的参数之一是 LONG VfDelta,它被描述为“对象中虚函数指针的偏移量”。

据我所知,vptr 始终位于对象的开头,因此偏移量始终为零。我仔细研究了使用 dynamic_cast 对各种代码片段的反汇编,我从未见过除了零以外的任何其他参数被传递来代替此参数。

vptr 是否位于对象开始以外的任何地方?这个偏移量可以不为零吗?

最佳答案

在多重继承的情况下,有多个 vptr,您需要 offset。看这里:http://hacksoflife.blogspot.com/2007/02/c-objects-part-3-multiple-inheritance.html

关于c++ - vptr 是否曾经位于对象的开头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12495510/

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