c++内存布局浅探(一)
来源:互联网 发布:ubuntu chmod r 777 编辑:程序博客网 时间:2024/05/16 17:19
一直对C++对象模型不是很了解,参考网上一些帖子,然后使用vs2003测试,结果如下,希望对大家有所帮助: )
参考链接:
http://blog.csdn.net/bluedog/archive/2009/10/22/4711169.aspx
说明:
1该文所给出代码只说明类的继承关系,具体测试输出代码不再详述;
2该文测试环境为vs2003,其他环境没测试;
3在下水平有限,本着学习的心态作此文,有高人路过请不吝赐教,不胜感激。
1单继承
测试代码:
这种情况比较简单:派生类和基类共用一个vptr,这个指针指向派生类的vtbl。
2 多继承
测试代码
稍微复杂点:派生类和继承序列中的第一个父类公用一个vptr,继承序列中的第二个父类独用一个vptr,两个vptr都指向派生类的vtbl,只是偏移量不一样。
3 菱形继承
测试代码:
又复杂了一点:两个vptr分别指向两个vtbl,一个vtbl代表一条继承路径。
访问基类变量和函数需指明从何处继承来的基类部分,如
Derived d;
d.Base1::base;
若Base1和Base2均为修改Base::foob(),则为同一个foob().
- c++内存布局浅探(一)
- c++内存布局(一)
- c++内存布局(一)
- C语言程序的内存布局(一)C语言程序的存储区域
- C程序存储空间布局(一)——各数据段的内存位置
- 一起talk C栗子吧(第一百二十九回:C语言实例--C程序内存布局一)
- C++内存布局一
- jvm内存布局(一)
- C/C++ 内存布局详解(经典)
- 虚表的内存布局(c++)
- C/C++ 内存布局详解(经典)
- 【C++】菱形虚拟继承(内存布局)
- c程序内存布局
- C/C++ 内存布局
- Objective-C内存布局
- C/C++ 内存布局
- Objective-C内存布局
- Objective-C内存布局
- RAII
- 2010北邮复试上机网研的题目:(1)
- .php会员登录权限和超时退出
- emacs笔记
- vb数据库编程(二)--数据控件
- c++内存布局浅探(一)
- poj1328——Radar Installation
- C#显示二进制图片
- 数据结构
- vc下禁止按钮连续点击的方法
- com.googlecode.jsonplugin.JSONException: java.lang.reflect.InvocationTargetE
- 水龙头发出呜呜声的解决方法
- vb数据库编程(三)--SQL语言
- ASM Concepts Quick Overview [ID 1086199.1]