c++笔记 虚函数表内存布局
来源:互联网 发布:下载全民直播软件 编辑:程序博客网 时间:2024/05/16 15:30
测试了一下vs2008中虚函数表的内存布局,测试代码如下:
class A {public: virtual int getA() const { return a;}private: int a;};class B{public: virtual int getB(){return b;} private: int b;};class C: public A, public B{public: virtual int getC(){return c;}private: int c;};int main(int argc, char* argv[]){ C c; c.getC(); return 0;}在局部变量窗口中,观察到的c结构如下:
可以看到c中有两个虚函数表,但是c自身的虚函数指针( getC())保存在哪呢?查看基类A虚表处的内存,如下:
首先getA()的地址"0x00411131",后面的内容是什么呢?在"c.getC();"处断点,可以看到getC()函数的地址为"0x00411113",正好紧跟在getA()函数地址后面。getA()后面的内容不清楚。再来看一下基类B虚表内容:
只有一项,即getB()地址。
结论:
多重继承时,子类的虚函数列在第一个基类虚函数中。
参考资料:http://smallarcher.com/2011/05/cvritualtable/
- c++笔记 虚函数表内存布局
- C++ 虚函数内存布局学习笔记
- C++ 虚函数内存布局学习笔记
- C++ 虚函数内存布局学习笔记
- C++ 虚函数内存布局学习笔记
- C++ 虚函数内存布局学习笔记
- 虚表的内存布局(c++)
- 【C++】c++单继承、多继承、菱形继承内存布局(虚函数表结构)
- 【C++】c++单继承、多继承、菱形继承内存布局(虚函数表结构)
- 读C++虚函数表及C++对象的内存布局笔记
- C函数调用时的内存布局
- 虚函数的 内存布局
- C++ 虚函数内存布局
- C++ 虚函数内存布局
- C++虚函数内存布局
- c++虚函数、内存布局
- C++ 虚函数表、函数地址、内存布局解析
- 虚函数表的指针的内存布局
- Linux新手生存笔记[11]——shell脚本基础4-补充
- Open Graph:FB的开放平台瑰宝
- bingmap ajax v6.3升级到v7.0的总结
- IT巨头互掐云存储:Dropbox能否一马当先
- Tomcat 配置出错 No Certificate file specified or invalid file format
- c++笔记 虚函数表内存布局
- careercup4.1
- jQuery学习笔录5(jQuery中的事件)
- 数据库维护的SQL语句大全
- Android ksoap 访问https SSL Webservice报错 javax.net.ssl.SSLException: Not trusted server certificate
- AS3使用ByteArray进行对象深度拷贝
- Linux系统中解压缩指令汇总
- js实现javaMap的功能 根据json的key获取json的key对应的值
- ThinkInLAMP首届架构师大会(2012.6.17)