讲座12-1:智能指针和线程
请在此处查看通常的幻灯片PDF。 这是一个分为两个部分的讲座:
第1部分:智能指针(续)
Slide 01Slide 0110m15s Slide 1704m00s Slide 2710m45s Slide 4508m00s
上一堂课的samples文件夹包含单链接列表代码llist.cc 。 它还包含双向链接列表的三个版本。 其中一个名为dbllist_bad.cc已损坏。 由于所有指针都是shared_ptr引用,并且由于在双向链接列表中存在循环结构,因此无法正确释放节点。
其他两个以两种方式修复_bad一个:
dbllist_better.cc :这里所有引用也都是shared_ptr 。 但是显式析构函数遍历列表并将所有prev链接设置为nullptr 。 这具有破坏列表中任何循环结构的效果,从而使节点的shared_ptr参考计数可以变为0,