让 C++ 编程更安全:智能指针与其他安全特性
1. 重温智能指针
智能指针是 C++ 中管理堆内存的强大工具。在使用智能指针时,我们可以通过 use_count() 方法查看共享资源的引用计数。例如,当有 pers1 、 wpers1 和 pers2 时,其中非弱指针引用共享资源,引用计数为 2,而弱指针不会增加引用计数。这一特性使得弱指针能够打破循环依赖链。当依赖循环中插入弱指针时,共享资源的引用计数不受其影响,当只剩下指向该资源的弱指针且引用计数为 0 时,资源可以被删除。
以下是一个 weak_ptr 指针示例的输出:
Miss Gabby Doone
# references: 1
# references: 1
Miss Gabby Doone
Dr. Gabby Doone
# references: 2
# references: 2
# references: 2
Person destructor
使用智能指针的好处是堆内存会自动管理,当最后一个对内存的引用被移除时,内存会被销毁和删除,弱指针不会增加引用计数。
2. 探索互补概念 - RAII
RAII(Resource Acquisition Is Initialization)是一种与智能指针互补的编程习惯用法。它将(可能共享的)资源的生命周期与对象的生命周期绑定,要求在使用资源之前先获取它,有助于控制共享资源
超级会员免费看
订阅专栏 解锁全文
3269

被折叠的 条评论
为什么被折叠?



