开发者社区 问答 正文

在添加虚方法到vftable时,如何处理需要this指针调整的情况?

在添加虚方法到vftable时,如何处理需要this指针调整的情况?

展开
收起
不吃核桃 2024-08-06 11:38:35 7 分享 版权
1 条回答
写回答
取消 提交回答
  • 在添加虚方法到vftable时,如果需要处理this指针的调整,代码会首先计算FinalOverrider(即最终覆盖者)的this指针偏移量(ThisOffset),然后计算这个偏移量与虚函数表指针(WhichVFPtr.FullOffsetInMDC)之间的差值,得到ThisAdjustmentOffset.NonVirtual。如果当前基类是一个带有虚指针的虚基类(WhichVFPtr.getVBaseWithVPtr()为真),则还需要调用CalculateVtordispAdjustment函数来计算额外的虚析构函数位移(vtordisp)调整。

    2024-08-06 14:58:35
    赞同 1 展开评论
问答地址: