智能指针的相关问题
智能指针是C++11的新特性,包括共享指针、独占指针、弱指针,其主要目的是智能管理内存,防止内存泄漏。
如果计数为0,会立即delete。此外,独占指针其生命周期只在作用域内。
//动态数组申请方法 shared_ptr<int[]> p(new int[10]); //动态变量申请方法 shared_ptr<int> p(new int);
共享指针的特点是允许多个智能指针指向资源,独占则是不允许其他指针指向资源,但可以通过引用取值,弱指针是一个观测指针。
move函数可以移交指针管理权。
get函数可以获取指针地址,注意,此时已不再是智能指针。
reset函数是重设指针,如果是共享指针计数为0或独占指针时,会析构。
其他的一些知识,请看:
智能指针(现代 C++) | Microsoft Learn
关于弱指针,可以看这篇文章,主要是避免循环引用导致共享指针失效。
(21条消息) C++智能指针3——弱指针weak_ptr详解_c++ weak_ptr_写有意思的代码的博客-CSDN博客
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报