继承
class 子类:继承方式 父类
子类中包含两大部分:一类为基类中继承过来的,一类为自己增加的成员。
从基类继承过来的表现其共性,而新增的成员体现了其个性。
继承分为三类:
父类的私有类型子类不可访问
父类中所有的非静态成员属性都会被子类继承,而私有成员属性是被编译器给隐藏了,因而访问不到,但确实被继承下去了。
如果通过子类对象访问父类同名成员,需要加作用域(静态同名成员也一样)。
多继承语法:
class 子类 : 继承方式 父类1 , 继承方式 父类2...
多继承中如果父类出现同名情况,子类使用时加作用域。
菱形继承会产生的问题:
子类使用数据时会产生二义性
子类继承了两份父类的父类的数据,而这个数据只要一份就够了。
利用虚继承解决菱形继承问题(在继承之前加上关键字virtual变为虚继承)
多态:
多态分为静态多态和动态多态
静态多态:函数重载和运算符重载
动态多态:派生类和虚函数实现运行时多态
动态多态为晚绑定,满足的条件:1、有继承关系;2、子类重写父类的虚函数。
动态多态的使用:用父类的指针或者引用执行子类对象