40. Use multiple inheritance judiciously

本文探讨了多重继承在面向对象编程中的角色,指出其虽然复杂且可能引入歧义,但在某些场景下,如结合公共接口类与私有辅助实现类,多重继承可能是最简洁、易维护的设计选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

明智而审慎地使用多重继承

多重继承只是面向对象工具箱里面的一个工具而已。和单一继承比较,它通常比较复杂,使用上也比较难以理解,所以如果有一个单一继承的设计方案,而它大约等价与一个多重继承设计方案,那么单一继承设计方法几乎比较受欢迎。如果你唯一能够提出的设计方案涉及多重继承,应该更努力想一想-几乎可以说一定会有某些方案让单一继承行得通。然而多重继承有时候的确是完成任务值最简洁、最易维护、最合理的做法,果真如此就别害怕使用它。只要确定,你的确实在明智而审慎的情况下使用它。

请记住:

多重继承比单一继承复杂,它可能导致新的歧义性,以及对virtual继承的需要。

virtual继承会增加大小、速度、初始化(及赋值)复杂度等等成本。如果virtual base classes不带任何数据,将是最具使用价值的情况。

多重继承的确有正当用途。其中一个情节涉及"pubic继承某个Interface class"和"private继承某个协助实现的class"的两相组合。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值