【C++】继承和组合的概念?什么时候用继承?什么时候用组合?

继承:通过扩展已有的类来获得新功能的代码重用方法

组合:新类由现有类的对象合并而成的类的构造方式


何时用继承?何时用组合?

1.如果二者间存在一个“是”的关系,并且一个类要对另外一个类公开所有接口,那么继承是更好的选择

2.如果二者间存在一个“有”的关系,那么首选组合

ps:

没有找到极其强烈无法辩驳的使用继承的利用的时候,一律采用组合

组合体现为现实层面,继承主要体现在扩展方面

如果并不是需要一个类的所有东西(包括接口和熟悉),那么就不需要使用继承,使用组合更好

如果使用继承,那么必须所有的都继承,如果有的东西你不需要继承但是你继承了,那么这就是滥用继承


原文地址:https://www.cnblogs.com/yinbiao/p/11534037.html