二阶构造模式
一,关于构造函数
(一)类的构造函数用于对象的初始化
(二)构造函数与类同名并且没有返回值
(三)构造函数在对象定义时自动被调用
(四)关于构造函数该知道的真相
1,只提供自动初始化成员变量的机会
2,不能保证初始化逻辑一定成功
3,执行return语句后构造函数立即结束
4,构造函数能决定的只是对象的初始态,而不是对象的诞生!!
二,半成品对象
(一)半成品对象的概念
1,初始化操作不能按照预期完成而得到的对象
2,半成品对象是合法的C++对象,也是Bug的重要来源
三,二阶构造
(一)工程开发中的构造过程可分为:
1,资源无关的初始化操作
不可能出现异常情况的操作
2,需要使用系统资源的操作
可能出现异常情况,如:内存申请,访问文件
四,小结
(一)构造函数只能决定对象的初始化状态
(二)构造函数中初始化操作的失败不影响对象的诞生
(三)初始化不完全的半成品对象是Bug的重要来源
(四)二阶构造人为的将初始化过程分为两部分
(五)二阶构造能够确保创建的对象都是完整初始化的