C++笔记 第二十七课 二阶构造模式---狄泰学院

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_42187898/article/details/83818882

如果在阅读过程中发现有错误,望评论指正,希望大家一起学习,一起进步。
学习C++编译环境:Linux

第二十七课 二阶构造模式

1.构造函数的回顾

关于构造函数
类的构造函数用于对象的初始化
构造函数与类同名并且没有返回值
构造函数在对象定义时自动被调用

2.问题

1.如何判断构造函数的执行结果?没有办法
2.在构造函数中执行return语句会发生什么?构造函数立即返回
3.构造函数执行结束是否意味着对象构造成功?并不意味着构造成功

27-1 异常的构造函数

3.你该知道的真相

构造函数
只提供自动初始化成员变量的机会
不能保证初始化逻辑一定成功
执行return语句后构造函数立即结束

4.真相的意义

构造函数能决定的只是对象的初始状态,而不是对象的诞生!!

5.半成品对象

半成品对象的概念
初始化操作不能按照预期完成而得到的对象
半成品对象是合法的C++对象,也是Bug的重要来源
难调的Bug:野指针、半成品对象

IntArray 半成品对象的危害

6.二阶构造—变成品对象的解决方案

核心:将构造过程一分为二
原理层面:

工程开发中的构造过程可分为
资源无关的初始化操作
不可能出现异常情况的操作
需要使用系统资源的操作
可能出现异常情况,如:内存申请,访问文件
在这里插入图片描述
代码层面:
二阶构造示例一
在这里插入图片描述
二阶构造示例二
在这里插入图片描述

27-2 二阶构造初探

IntArray 数组类的加强

小结
构造函数只能决定对象的初始化状态
构造函数中初始化操作的失败不影响对象的诞生
初始化不完全的半成品对象是Bug的重要来源
二阶构造人为的将初始化过程分为两部分
二阶构造能够确保创建的对象都是完整初始化的

猜你喜欢

转载自blog.csdn.net/weixin_42187898/article/details/83818882