智能指针的相关问题
智能指针是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博客

浙公网安备 33010602011771号