一个完整的小程序跑一遍
(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)类 + map,带一条输入检查: #include <iostream> #include <map> #include <string
第一步:把东西装进去
(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)同一种要累加,不是覆盖。
⚠️ 第二步:加个只读的总和
(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)report 收的是 const 引用。
🔴 第三步:只查不插
(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)查完之后 kinds() 必须还是 2。
⚠️ 第四步:不合格的挡在门口
(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)数量不是正数就不收,而且要数出挡了几个。
交付:五条验收条款一起过
(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)前两条已经写好了,把后三条补上。
一个对象出了大括号,会发生什么
这一趟过完,那东西还欠着没有 得记着还 不用记着 局部对象走出它所在的大括号时,【0】。
🔴 RAII 让"还"这件事变成了什么
RAII 的做法,是把"把资源还回去"【0】。
⚠️ 手动版最容易在哪儿漏
这一趟过完,那东西还欠着没有 得记着还 不用记着 手写 new / delete,最容易漏掉 delete 的地方是【0】。
⚠️ RAII 管的只有内存吗
这一趟过完,那东西还欠着没有 得记着还 不用记着 能用 RAII 管起来的东西,除了内存还有【0】。