智能指针的相关问题

智能指针是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博客

posted @   澳大利亚树袋熊  阅读(34)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
点击右上角即可分享
微信分享提示