shared_ptr
时间: 2023-08-07 18:07:27 浏览: 80
shared_ptr是C++标准库中的智能指针类,用于管理动态分配的对象。它可以自动释放所管理的对象,并且可以跟踪对象的引用计数,以确保在没有引用时正确释放内存。\[1\]
在引用\[1\]中的示例中,有三个shared_ptr对象apa、gx、apb。其中,gx是一个线程之间共享的shared_ptr对象,apa是线程A的局部变量,apb是线程B的局部变量。
为了避免出现悬空指针或内存泄漏的情况,建议使用make_shared()函数来创建shared_ptr对象,而不是使用默认构造函数创建。make_shared()函数可以同时创建对象和关联的引用计数,确保对象的正确释放。\[2\]
另外,在示例\[3\]中,shared_ptr还可以作为函数的返回值。当返回一个shared_ptr时,引用计数会递增,确保在函数调用结束后对象不会被提前释放。\[3\]
总结来说,shared_ptr是一种智能指针,可以自动管理动态分配的对象,并且可以跟踪对象的引用计数,确保在没有引用时正确释放内存。使用make_shared()函数可以更安全地创建shared_ptr对象。
#### 引用[.reference_title]
- *1* [智能指针——shared_ptr](https://blog.csdn.net/weixin_45732589/article/details/115741770)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [C++智能指针详解:shared_ptr](https://blog.csdn.net/feikudai8460/article/details/122023528)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [C++:共享指针shared_ptr的理解与应用](https://blog.csdn.net/weixin_41504987/article/details/124396989)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文