UNIT 26 / 78 · U26
共享拥有与weak观察
本单元预计 3 核心小时。可以分成多个学习时段,按完整小节推进;停下来时留下输入、命令、结果和下一步。
时间包含阅读、编码与检查,是学习预算而非期限。打开此页只保存阅读位置,不代表通过验收。
先知道自己在观察什么
14.1 shared_ptr的共享合同 →
读完本小节全部正文与本节任务;先写状态/路径预测,再按该节的运行边界核对,不能只看标题或答案。
14.2 weak_ptr与拥有环 →
读完本小节全部正文与本节任务;先写状态/路径预测,再按该节的运行边界核对,不能只看标题或答案。
先备不清楚时,沿章节入口补读;不要依赖翻过页数判断进度。
先留下自己的预测或独立尝试
先在笔记预测强拥有数、lock成功期间和最后释放时的事件;再打开本节的weak-lock.cpp,按该节命令在自己的副本运行,保存预测、命令、实际结果与差异。
完整例一:弱观察与暂时取得强拥有 →源码下载与编译入口
下载到自己的练习目录。按本节给出的完整命令编译;多文件与driver要求见原任务。需要时查阅文件保存与编译操作 →
weak-lock.cpp先保存预测,再核对正文标明的预期或诊断。完整构建、多文件与设备实验按原任务命令执行。
通过一个变动看清原因
按14.2只改变强拥有者结束位置,核对weak观察;只在自己的副本修改,先保留独立预测。
修改后应观察到什么
按所链接小节的合同逐项比较修改前后结果;意外编译成功/失败、未执行检查或不满足的边界均不能记作通过。
换一组条件,独立解决
独立完成14.2双向连接的弱边练习,确认两个对象均能销毁;关闭完整答案后重新完成。
用这些条件检查自己的实现
- 留下自己的源码或纸面状态表、输入与独立期望;非法访问题不靠运行猜答案。
- 按指定小节核对正常与边界/拒绝路径;保留失败与修复记录,不用教材检查收据替代本人完成。
用证据决定是否进入下一单元
- 不看代码,说明强拥有数、lock成功期间和最后释放时的事件。
- 指出本单元一次失败的最早原因,并解释检查能够和不能够证明什么。
本单元的验收依据
本单元所列完整小节、独立任务和两条复述均有本人证据;阅读位置、展开答案与教材示例运行不自动通过。
留下自己的代码或推演、测试输入、真实输出和仍不确定的问题。未达到要求时,下一次继续本单元。