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 显卡 内存 抽象类

定义电脑抽象类

实现层


高层业务逻辑层:

依赖反转原则:


在这里案例中的依赖倒置原则:

面向电脑类编程(依赖倒置原则)


浙公网安备 33010602011771号