⚠️ 只看一眼,别把所有权拿走
(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)看完之后 owner 还得在自己手上。
什么时候才把东西还掉
一块由 shared_ptr 管着的资源,被析构的时刻是【0】。
⚠️ `weak_ptr` 是干什么用的
weak_ptr 的特点是【0】。
🔴 两个对象互相拿着对方,会怎样
两个 shared_ptr 成员互相指着对方,结果是【0】。
有几个人拿着
(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译) #include <iostream> #include <memory> struct Res { static int gon
🔴 循环引用:谁也不还
(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)上半段互相拿着,下半段把一边改成 weak_ptr: #include <iostream> #include <memory> struc
再多一个人拿着
(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)
⚠️ 指着它,但不算一份
(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)人数必须还是 1。
🔴 把环打开
(本条路线统一用 g++ -std=c++17 -O0 -Wall 编译)只改一个词,让下半段的两个都还回去。
🔴 `std::move` 到底做了什么
std::move(x) 这一句本身【0】。