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 多态案例的复习

 

多态三个条件:

  1. 要有继承
  2. 要有虚函数重写
  3. 父类指针指向子类对象

 

12 多继承与纯虚函数

 

13 动物园多态案例

 

source.cpp:

Animal.h:

Animal.cpp:

 

Dog.h:

Dog.cpp:

 

 

 

注意: 没有执行dog的析构函数

 

如果想执行dog的析构函数 需要在animal类中给析构函数加virtual关键字

 

animal.h:

 

 => 

 

增加架构函数:

调用:

 

 

14 电脑组装案例

 

定义CPU 显卡 内存 抽象类

 

定义电脑抽象类

 

实现层

 

 

 

高层业务逻辑层:

 

 

依赖反转原则:

 

 

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

 

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

 

转载于:https://www.cnblogs.com/eret9616/p/10513463.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值