C++类的继承与派生
定义
继承就是在一个已有类的基础上建立一个新类。已有类称为基类(=父类);
派生就是已有类产生新类。新类称为派生类(=子类)。
功能:代码重用
派生类的定义语法
// An highlighted block
class 派生类名:继承方式 基类名1,继承方式 基类名2
{新成员}
1.继承方式有:public,private,protected —— 省略,默认私有继承
私有继承:父类的public,protected成员成为子类private成员 ,子类无法直接访问父类private成员。
公有继承*:父类的public,protected成员成为子类public,protected成员(相当于不变) ,子类无法直接访问父类private成员。
保护继承*:父类的public,protected成员成为子类protected成员 ,子类无法直接访问父类private成员。
protected成员可以被派生类访问,不能被外部访问(主函数调用)
private成员不能被派生类访问,不能被外部访问
2.一个父类可以有多个子类,一个子类也可有多个父类
3.派生类可作为基类继续派生新类
4.构造析构函数不继承
5.类型兼容规则:任何用基类的地方可用子类替代
基类指针无论指向基类对象还是派生类对象,最后都是访问基类成员。
虚基类
减少同名函数继承产生的多个副本
执行次序
1.对象创建时代码的加载顺序为:静态代码 --> 非静态代码 --> 构造方法。
2.父类的静态的代码 --> 子类的静态的代码 --> 父类内部非静态代码 --> 父类的构造方法 --> 子类的非静态代码 --> 子类的构造方法。
3.创建派生类对象,构造函数的执行顺序
基类构造函数,派生类对象成员构造函数,派生类本身的构造函数