[lesson27]二阶构造模式

二阶构造模式

构造函数的回顾

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

你该知道的真相

  • 构造函数
    • 只提供自动初始化成员变量的机会
    • 不能保证初始化逻辑一定成功
    • 执行return语句后构造函数立即结束
      构造函数能决定的只是对象的初始状态而不是对象的诞生

半成品对象

  • 半成品对象的概念
    • 初始化操作不能按照预期完成而得到的对象
    • 半成品对象时合法的C++对象,也是bug的重要来源

二阶构造

  • 工程开发中的构造过程可分为

    • 资源无关的初始化操作
      • 不可能出现异常情况的操作
    • 需要使用系统资源的操作
      • 可能出现异常情况,如内存申请,访问文件等

    在这里插入图片描述

  • 二阶构造示例一

    在这里插入图片描述

  • 二阶构造示例二

    在这里插入图片描述

小结

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Joyce_JTR

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值