C++基础 (7) 第七天 多态的原理 纯虚函数和抽象类 依赖倒置原则
1 昨日回顾
2 多态的原理
1 要有继承
2 要有子类重写父类的虚函数
3 父类指针(或者引用)指向子类对象
(动态联编
虚函数表
3 证明vptr指针的存在
4 vptr指针在构造父类的时候是分步初始化的
Child c;
1. 先调用Parent的构造函数
2. 调用的时候vptr指针会先指向父类的虚函数表
5 vptr指针分步的安全性
根据上一节课所讲内容 应该可以得出结论:
6 父类指针和子类指针的步长
这样虽然能运行,但是要注意,如果子类的private中多了一个int b 那么子类的步长就变长了,步长和父类不一样,运行的时候就会报错。
7 多态的总结
8 纯虚函数和抽象类
9 纯虚函数和抽象类2
10 中午回顾
11 多态案例的复习
多态三个条件:
- 要有继承
- 要有虚函数重写
- 父类指针指向子类对象
12 多继承与纯虚函数
13 动物园多态案例
source.cpp:
Animal.h:
Animal.cpp:
Dog.h:
Dog.cpp:
注意: 没有执行dog的析构函数
如果想执行dog的析构函数 需要在animal类中给析构函数加virtual关键字
animal.h:
=>
增加架构函数:
调用:
14 电脑组装案例
定义CPU 显卡 内存 抽象类
定义电脑抽象类
实现层
高层业务逻辑层:
依赖反转原则:
在这里案例中的依赖倒置原则:
面向电脑类编程(依赖倒置原则)