C++ FAQ学习笔记 25章 继承 — 多继承和虚继承

本文是C++ FAQ学习笔记的25章,主要讨论继承的三个方面:继承的目的、多继承与虚继承的选择。文章提到了桥模式、多层次嵌套继承和多继承的优缺点,并举例说明了如何在不同场景下选择合适的继承方式。同时,解释了dread-diamond问题及其解决方法,以及多继承初始化的顺序。
摘要由CSDN通过智能技术生成

25.4 继承的原则

 a)继承是为了扩展性,组合是为了代码重用

b)尽量使用纯虚类,既其中无属性,仅仅提供接口等

c)多继承的替代方式:the "bridge" pattern or nested generalization 

25.5诠释以上三大原则

三种方式各有优缺点:

桥模式:共有n+m个子类,增加了代码的重用,但是如果

1.n×m的组合方式算法各不相同,则维护工作量巨大

2.不能随意组合,例如例子中的脚踩的太空飞船,需要增加额外检查

3. users cannot pass any gas powered vehicle as a GasPoweredVehicle,没有比较好的类层次结构

多层次嵌套继承:

1.可以有多种算法

2.任意增加一种类层次,相应的需要扩展很多类,但是限制了不合理类的使用,例如脚踏太空飞船

3.同样存在以上3中的缺点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值