shared_ptr 和 sp
时间: 2023-10-21 18:27:20 浏览: 100
shared_ptr
共享指针(shared_ptr)是C++中的一种智能指针,用于管理动态分配的内存。共享指针使用引用计数的方式来管理内存的生命周期,每当有一个共享指针指向某个对象,该对象的引用计数就会加1。当引用计数为0时,表示没有任何共享指针指向该对象,内存会被自动释放。
共享指针可以通过赋值操作将一个共享指针与另一个共享指针关联起来,这时它们会共享同一块内存。如果直接使用地址值赋值给共享指针,各个共享指针将独立存在,不会关联起来。
另外,共享指针还可以接收一个删除器(deleter)函数来管理对象的释放。删除器函数可以自定义,用于在共享指针释放内存时执行一些额外的操作。
使用共享指针可以通过make_shared函数来分配内存和进行值初始化。make_shared函数可以分配指定类型大小的内存,并进行值初始化。返回的是一个shared_ptr类型的对象,可以直接赋值给共享指针变量。例如,make_shared<int>(100)会分配一块int类型大小的内存,并初始化为100,然后返回一个shared_ptr<int>类型的对象,可以直接赋值给共享指针变量sp。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [android::sp和boost::shared_ptr设计模式区别](https://blog.csdn.net/zhangxinjieli3/article/details/80503869)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [shared_ptr的使用和陷阱](https://blog.csdn.net/River_Lethe/article/details/78734879)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文