---- 整理自狄泰软件唐佐林老师课程
文章目录
- 1. 智能指针示例
- 1.1 内存泄漏(臭名昭著的Bug )
- 1.2 当代 C++ 软件平台中的智能指针
- 1.3 智能指针的设计方案
- 1.4 智能指针的使用军规
- 1.5 编程实验:智能指针示例
- 2. 异常类构建
- 2.1 现代 C++ 库必然包含充要的异常类族
- 2.2 异常类功能定义
- 2.3 异常类中的接口定义
- 2.4 设计原则
1. 智能指针示例
1.1 内存泄漏(臭名昭著的Bug )
动态申请堆空间,用完后不归还
C++ 语言中没有垃圾回收的机制(c#、java、Python有)
指针无法控制所指堆空间的生命周期
1.2 当代 C++ 软件平台中的智能指针
指针生命周期结束时主动释放堆空间
一片堆空间最多只能由一个指针标识
杜绝指针运算和指针比较
1.3 智能指针的设计方案
通过类模板描述指针的行为
能够定义不同类型的指针对象
重载指针特征操作符(->和*)
利用对象模拟原生指针的行为
1.4 智能指针的使用军规
只能用来指向堆空间中的单个对象或者变量
1.5 编程实验:智能指针示例
0~13 智能指针示例
2. 异常类构建
异常的类型可以是自定义类类型
对于类类型异常的匹配依旧是至上而下严格匹配
赋值兼容性原则在异常匹配中依然适用
一般而言:
– 匹配子类异常的 catch 放在上部
– 匹配父类异常的 catch 放在下部
2.1 现代 C++ 库必然包含充要的异常类族
异常类是数据结构类所依赖的“基础设施”
2.2 异常类功能定义
2.3 异常类中的接口定义
2.4 设计原则
在可复用代码库设计时,尽量使用面向对象技术进行架构,尽量使用异常处理机制分离正常逻辑和异常逻辑