读书人

虚函数表的有关问题

发布时间: 2012-03-17 19:06:28 作者: rapoo

虚函数表的问题
在VC的调试窗口中,为什么在子类的虚函数表中只能看到从父类继承的虚函数?为什么看不到它自己的虚函数?谢谢!

[解决办法]
这完全是编译器的显示问题,你完全可以通过指针操作把虚表中的每一项取出来看看。

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的值,我当时碰到这个问题就这么干的,有点麻烦,也许有更好的办法把。

读书人网 >C++

热点推荐