一个类有多个基类的内存布局
2016-01-22 06:45
447 查看
没有虚函数时
/// @file test_class.c /// @brief 测试一个类有多个基类的内存布局(没有虚函数时, 有虚函数时) #include <stdlib.h> #include <stdio.h> class CA { public: CA() : iA(1) {} int iA; }; class CB : public CA { public: CB() : iB(2) {} int iB; }; class CC : public CB { public: CC() : iC(3) {} int iC; }; void fnTest() { CC a; /** 0018FEE4 01 00 00 00 .... ///< 顶层基类CA数据 0018FEE8 02 00 00 00 .... ///< 基类CB数据 0018FEEC 03 00 00 00 .... ///< 本类CC数据 */ } int main(int argc, char *argv[]) { fnTest(); return 0; }
有虚函数时
/// @file test_class.c /// @brief 测试一个类有多个基类的内存布局(没有虚函数时, 有虚函数时) #include <stdlib.h> #include <stdio.h> class CA { public: CA() : iA(1) {} virtual ~CA() {} int iA; }; class CB : public CA { public: CB() : iB(2) {} virtual ~CB() {} int iB; }; class CC : public CB { public: CC() : iC(3) {} virtual ~CC() {} int iC; }; void fnTest() { CC a; /** 0018FEE4 1C 20 42 00 . B. ///< 本类CC虚函数表 0018FEE8 01 00 00 00 .... ///< 顶层基类CA数据 0018FEEC 02 00 00 00 .... ///< 基类CB数据 0018FEF0 03 00 00 00 .... ///< 本类CC数据 */ } int main(int argc, char *argv[]) { fnTest(); return 0; }
相关文章推荐
- KETTLE WEB管理控制台设计
- 龙芯之痛:中国芯片产业陷入烧钱过热怪圈
- Powershell 自定义对象小技巧
- [在美旅行]车辆信息查询
- saliency filters精读之permutohedral lattice
- MySql不同版本安装
- PowerDesigner的Name和Code不同步设置
- ISO/IEC 9899:2011 条款6.10.2——源文件包含
- Python 列表排序方法reverse、sort、sorted操作方法
- [数据库] SQL查询语句表行列转换及一行数据转换成两列
- Java 异常
- Leetcode 268. Missing Number
- 小娜学法(11):什么是“互联网+”?
- Visio 画括号等
- Shell 代码简单应用
- Leetcode 231. Power of Two
- Leetcode 191. Number of 1 Bits
- Leetcode 190. Reverse Bits
- 关系表示:被动与主动、连环关系合并
- 【快速高斯模糊的实现】