一、单/多/菱形继承
1.单继承
当一个子类只有一个直接父类时,称这个继承关系为单继承。
2.多继承
一个子类有两个或以上直接父类时称这个继承关系为多继承。
举个实例:新老师进学校工作时,一般会作为助教老师,一边代课教书,一边跟着经验足的老教师后头 学习一阵子。这时我们定义出的"Assistant"类,就同时具有老师、学生这两种属性。这就是多继承的思想。
多继承的书写格式为:逗号+继承方式+父类名
3.菱形继承
是多继承的一种特殊情况。
a.产生的问题
这种继承结构会导致二义性 以及空间浪费等问题。
什么叫产生二义性?我用上面的例子解释给你听:
class Person
{
public:
Person(string str