🔴 一句"还"都没写,账却是平的
这一趟过完,那东西还欠着没有 得记着还 不用记着 (本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)构造时记一笔,析构时记一笔: #include <iostream> /* 一个"借了就要还
把手动版改成 RAII 版
这一趟过完,那东西还欠着没有 得记着还 不用记着 (本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)两条路都不许欠着。
⚠️ 用大括号决定"什么时候还"
这一趟过完,那东西还欠着没有 得记着还 不用记着 (本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)第一批建 1 个,第二批建 2 个。
`unique_ptr` 和裸指针差在哪
把 Res *p = new Res() 换成 unique_ptr,最直接的差别是【0】。
🔴 为什么推荐 make_unique
推荐写 std::make_unique<Res>() 而不是 unique_ptr<Res>(new Res()),因为【0】。
⚠️ 它能不能复制一份
把一个 unique_ptr 赋值给另一个,【0】。
一个函数只想看看,参数该收什么
一个函数只读一下资源、不接管所有权,参数最该写成【0】。
一句 new、一句 delete 都没有
(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译) #include <iostream> #include <memory> struct Res { static int mad
用 `make_unique` 要一个
(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)
🔴 交出去,不是复制一份
(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)交完之后 a 该是空的。