开发者社区 问答 正文

在C++中,如何获取对象的vptr(虚拟表指针)?

在C++中,如何获取对象的vptr(虚拟表指针)?

展开
收起
花开富贵111 2024-06-19 14:19:43 98 分享 版权
1 条回答
写回答
取消 提交回答
  • 在C++中,获取对象的vptr(虚拟表指针)通常需要使用类型转换技巧。由于vptr通常被放置在对象内存的起始位置,我们可以先取对象的地址,然后将该地址转换为intptr_t*类型的指针,再解引用该指针得到vptr的值。例如:

    Point2d point2d(11, 22);
    intptr_t *vptr2d = (intptr_t*)*(intptr_t*)&point2d;
    
    2024-06-19 15:06:22
    赞同 展开评论