VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 676|回复: 1

虚函数表的问题

[复制链接]

1

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-1-2 21:50:02 | 显示全部楼层 |阅读模式
在VC的调试窗口中,为什么在子类的虚函数表中只能看到从父类继承的虚函数?为什么看不到它自己的虚函数?谢谢!
回复

使用道具 举报

0

主题

37

帖子

28.00

积分

新手上路

Rank: 1

积分
28.00
发表于 2020-1-2 22:45:02 | 显示全部楼层
这完全是编译器的显示问题,你完全可以通过指针操作把虚表中的每一项取出来看看。

Derived *p = new Derived()
int* addr = reinterpret_cast<int*>(p);
int* vptr = reinterpret_cast<int*>(*addr);

//取虚表中的各项:
int* func1 = reinterpret_cast<int*>(vptr[0]);
int* func2 = reinterpret_cast<int*>(vptr[1]);

然后在DEBUG查看func1,func2的值,我当时碰到这个问题就这么干的,有点麻烦,也许有更好的办法把。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表