C++的多重继承

C++的多重继承,在一个多重继承体系中,当出现十字继承是,你必须对那个带有数据的class成为一个virtual base class,为了这么做,你必须令所有直接继承自他的classes采用“virtual 继承”


从正确的观点看,public继承应该总是virtual。但是该方法有个缺点,使用virtual 继承的哪些classes所产生出对象往往比non-virtual 继承的兄弟们体积大,访问virtual base classes 的成员变量,也比访问non-virtual-base-class 的成员速度慢很多,你要为virtual付出代价

virtual继承的成本还包括其他方面。支配“virtual base classes”初始化的规则比起non-virtual-base-classes的情况原味复杂而不直观。virtual base的初始化责任由继承体现的最底层classes负责,这

1、暗示classes若派生自virtual bases而需要初始化,必须认知其virtual bases 不论那些bases有多远。 

2、当一个新的derived class加入继承体系中,它必须承担其virtual bases的初始化责任。


Public继承自某接口

Private继承自某实现。

多重继承当有个情节涉及 public继承某个Interface calss和private 继承某个协助实现的class 的两相组合。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值