C++ 继承学习心得

单继承:

一个子类只有一个直接父类时,称这个继承关系为单继承

多继承:

一个子类中有两个或以上直接父类时,称这个继承关系为多继承

菱形继承:

是一种特殊的继承关系

菱形继承的问题:有数据冗余和二义性的问题。会在后面结合汇聚结合对象中有某成员的多份。

虚位继承可以解决菱形继承的二义性和数据冗余问题。方法是:虚基表指针和虚基表。

继承关系的总结:

继承和组合关系:

1.public继承是一种is-a的关系。也就是说每个子类对象都是一个父类对象;

2.组合是一种has-a的关系。假设B组合了A,每个B对象中都有一个A对象;

3.优先使用对象组合,而不是类继承;

4.继承允许我们根据父类的实现来定义子类的实现;这是通过生成子类的复用,通常被称之为白箱复用。

5.对象组合是类继承之外的另一种复用选择。对象组合要求被组合的对象具有良好的定义的接口,这种复用的风格称之为黑盒复用,对象的内部细节是不可见的。

你可能感兴趣的:(C++ 继承学习心得)