一个类有多个基类的内存布局
发布日期:2021-06-30 22:08:32 浏览次数:2 分类:技术文章

本文共 1128 字,大约阅读时间需要 3 分钟。

没有虚函数时

/// @file test_class.c/// @brief 测试一个类有多个基类的内存布局(没有虚函数时, 有虚函数时)#include 
#include
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 
#include
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;}

转载地址:https://lostspeed.blog.csdn.net/article/details/50559412 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:菱形继承
下一篇:test_mem_addr_align

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年04月16日 02时21分42秒