博客
关于我
C++面向对象(十一)多继承
阅读量:124 次
发布时间:2019-02-27

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

关于C++中的虚基类和多继承导致的内存浪费问题,可以通过以下方法进行优化:

  • 虚继承的应用:确保所有直接继承自A的派生类(如B和C)使用虚继承。这样,派生类只保留一个基类A的拷贝,而不是各自有独立的拷贝。例如,定义B和C时使用class B : virtual public Aclass C : virtual public A

  • 构造函数的初始化列表:在派生类D的构造函数中,明确调用A、B和C的构造,以确保正确的构造顺序和内存布局。例如,D的构造函数应包含A(data), B(data), C(data)。这样,A会被构造为共享拷贝,而B和C则各自拥有独立的空间。

  • 构造顺序:确保构造顺序是A → B → C → D。这样,虚基类A会被先构造,然后是B和C,最后是D。这样,内存会被合理分配,避免浪费。

  • 通过以上方法,内存浪费问题得到有效解决,优化了内存使用。

    转载地址:http://jmyd.baihongyu.com/

    你可能感兴趣的文章
    OSPF 四种设备角色:IR、ABR、BR、ASBR
    查看>>
    OSPF 学习
    查看>>
    OSPF 概念型问题
    查看>>
    SQL Server 存储过程分页。
    查看>>
    OSPF不能发现其他区域路由时,该怎么办?
    查看>>
    OSPF两个版本:OSPFv3与OSPFv2到底有啥区别?
    查看>>
    SQL Server 存储过程
    查看>>
    OSPF在大型网络中的应用:高效路由与可扩展性
    查看>>
    OSPF技术入门(第三十四课)
    查看>>
    OSPF技术连载10:OSPF 缺省路由
    查看>>
    OSPF技术连载11:OSPF 8种 LSA 类型,6000字总结!
    查看>>
    OSPF技术连载13:OSPF Hello 间隔和 Dead 间隔
    查看>>
    OSPF技术连载14:OSPF路由器唯一标识符——Router ID
    查看>>
    OSPF技术连载15:OSPF 数据包的类型、格式和邻居发现的过程
    查看>>
    OSPF技术连载16:DR和BDR选举机制,一篇文章搞定!
    查看>>
    OSPF技术连载17:优化OSPF网络性能利器——被动接口!
    查看>>
    OSPF技术连载18:OSPF网络类型:非广播、广播、点对多点、点对多点非广播、点对点
    查看>>
    OSPF技术连载19:深入解析OSPF特殊区域
    查看>>
    SQL Server 复制 订阅与发布
    查看>>
    OSPF技术连载20:OSPF 十大LSA类型,太详细了!
    查看>>