虚函数表
来源:互联网 发布:robotart软件下载 编辑:程序博客网 时间:2024/04/29 06:00
http://www.cnblogs.com/rocketfan/archive/2009/09/18/1569294.html
主要参考上面这篇blog,然后我在vs上做了下实验,大概如下:
debug下可以看到a中有个‘vfptr’ 指向 'vftable'的。
这个就是虚函数表,具体的可以自己看看,下面说说自己的感想:
1.虚函数表应该会在继承的时候先提取父类的虚函数表,然后进行覆盖。
2.每个class有自己的虚函数表(如果有虚函数的话)。
3.如果没有虚函数的话多态体现不出来,这时候就算是像上例一样new C(),也不会有C,B class里面的变量等内容。
4.不是虚函数的暂时看不出放在哪。
后来还有个更bug的问题,就是用
B* b=new C();
b->f();
这个时候调用的还是C::f();
debug下看到b里面是C的'vftable', 囧囧囧
看来 “new C();” 的时候就发生这么多事情。
- 虚函数,虚析构函数,虚函数表
- 虚函数 虚函数表
- 虚函数表 构造函数
- 虚函数和纯虚函数及虚函数表
- 子类虚函数表(包括虚函数+函数)
- 虚函数、虚函数表、虚继承
- 通过函数指针使用虚函数表中的函数
- 虚函数表指针,虚函数表
- 虚函数表指针,虚函数表
- 关于 [虚函数] 和 [虚函数表]
- C++虚函数与虚函数表
- C++虚函数与虚函数表
- 虚函数与虚函数表
- c++ 虚函数和虚函数表
- c++虚函数和虚函数表
- [收集]虚函数及虚函数表
- C++ 虚函数,虚函数表
- C++虚函数与虚函数表
- set
- 在c++中调用Html中的js方法
- tomcat不能启动
- AudioRecord实现录音
- Power Builder 使用Imaging for windows ocx控件调用扫描仪
- 虚函数表
- 【转】自然界的颜色与界面设计
- 面试题collections -- ongoing....
- 获取OCX的版本号
- test.0609
- JS精髓笔记
- C#编程之经典算法——递归过程(一)
- 1
- 【转】iPhone QQmusic设计实录