继承
继承是面向对象三大特性之一
有些类与类之间存在特殊关系
继承的基本语法
继承的好处:减少重复代码
语法:class 子类 :继承方式 父类
子类 也称为 派生类
父类 也称为 基类
继承方式
继承方式一共有三种:
- 公共继承
- 保护继承
- 私有继承
继承中的对象模型
- 父类中的所有非静态成员属性都会被子类继承下去
- 父类的私有成员属性 是被编译器隐藏了 因此是访问不到的,但全部都被继承了
利用开发人员命令提示工具查看对象模型cl /d1 reportSingleClassLayout类名 文件名
继承中的构造和析构顺序
- 先构造父类,再构造子类
- 先析构子类,再析构父类
继承中同名成员处理方式
- 访问子类同名成员 直接访问
- 访问父类同名成员 加上父类的作用域
继承同名静态成员处理方式
- 访问子类同名成员 直接访问
- 访问父类同名成员 加上父类的作用域
多继承语法
- 语法:class 子类 : 继承方式 父类1,继承方式 父类2 …
- 多继承会出现成员同名的情况 添加作用域进行访问
菱形继承
菱形继承概念
- 两个派生类继承同一个基类
- 又有某个类同时继承了两个派生类
- 利用虚继承可以解决菱形继承的问题 在继承之前加上:virtual 关键字 变为虚继承