好的,我们开始今天的讲座。今天的主题是C++ std::shared_ptr 的控制块(Control Block)。我们将深入探讨控制块的结构,包括引用计数、弱引用以及自定义删除器,并通过代码示例来加深理解。 std::shared_ptr 的基本概念 std::shared_ptr 是一种智能指针,它允许多个 shared_ptr 实例共享同一个对象的所有权。当最后一个 shared_ptr 实例销毁时,它会自动释放所管理的对象。这种机制通过引用计数来实现,避免了手动内存管理带来的泄漏风险。 控制块(Control Block)的作用 std::shared_ptr 的核心在于控制块。控制块是一个动态分配的内存区域,用于存储以下关键信息: 强引用计数(Strong Count): 记录当前有多少个 shared_ptr 实例指向这个对象。当强引用计数降为 0 时,表示没有 shared_ptr 再持有该对象的所有权,对象将被销毁。 弱引用计数(Weak Count): 记录当前有多少个 weak_ptr 实例指向这个对象。weak_ptr 不参与对象的所有权管理,它的存在是为了在对 …
继续阅读“C++ `std::shared_ptr`的控制块(Control Block)结构:引用计数、弱引用与自定义删除器”