Effective C++之40

条款40:明智而审慎的使用多重继承
       对于我个人来说,显然不太赞成多重继承,这是C++的特性,如Java这样的程序是不支持多重继承的特性的,对应的Java提供了Interface.在C++中理解Interface比较难以找到比较的对象,如果一定要找到一个那可能一个不包含任何成员对象,只有纯虚函数接口的基类可以匹配。
       但如果看过《Modern C++ Design》的人,一定会对多重继承影响深刻。多重继承在实现中还是存在很有意义的地方,如果说单一继承只是一维的话,那么多重继承就是多维的。所以在实现上就存在多重的交叉分解问题。
在多重继承的情况下,可能导致新的歧义性。还有可能出现的问题是钻石性继承结构,这会导致访问基类对象的歧义性,解决这个问题的办法是虚拟继承。如果看过Lippiman关于C++解析的那本书,那么就知道这样的代价其实是非常大的了。
多重继承的正确用途是存在的。那就是public继承某个接口和private协助实现某个类相结合的组合。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值