多重继承

  这个用代码实现起来很简单。只是在声明子类的时候继承多个父类就行了:

  class Man {....}

  class Spider {...}

  class SpiderMan : public Man, public Spider {...}

  但是之所以提出这个概念,是为了更清晰的程序结构,如果不用多重继承的话,

那么我们就需要把一些需要的属性,比如上面人的一些属性,和蜘蛛的一些属性一同

提取出来上交到他们的父类,然后再继承下来新的SpiderMan子类,但是这样又有些

违背的基类的一些理念,我们把一些个性的属性发在了基类里面。

  好吧为了避免这样的情况发生我们把其中的一个子类的属性发在另一个子类里面

然后我们再以他为父类派生一个子类。比如我们把上面人的属性中添加一些蜘蛛的属

性(我们完全可以做一些处理把这些属性隐藏)。这样我们又会觉得我们打破了继承

的结构,这样显得程序很乱。

  好吧那么最后我们不得不提出多重继承。多重继承还有一个好处就是,我们可以

把SpiderMan这个类和Sipder或者Man放在一个链表里面。因为他们有了继承关系。

  最后当多重继承的时候,一定要注意,如果父类们中存在同名方法,当我们需要

调用他们的时候,我们需要进行一个显示的调用。

  pSpiderMan->Man::GetWeight();

这样就ok了。

原文地址:https://www.cnblogs.com/sunnystone85/p/1399185.html