共享指针包含共享指针
时间: 2023-11-23 16:55:10 浏览: 71
智能指针讲稿11111
的,共享指针本身就是一种智能指针,它可以包含其他共享指针。共享指针的引用计数机制可以确保多个指针同时指向同一块内存时,内存不会被提前释放,从而避免了悬空指针和内存泄漏的问题。同时,共享指针还支持自定义删除器,可以在指针被释放时执行一些额外的操作,比如释放指针所指向的资源等。
代码示例:
```c++
#include <iostream>
#include <memory>
int main() {
std::shared_ptr<int> p1(new int(10));
std::shared_ptr<int> p2(new int(20));
std::shared_ptr<std::shared_ptr<int>> p3(new std::shared_ptr<int>(p1));
std::cout << *p1 << std::endl; // 输出 10
std::cout << *p2 << std::endl; // 输出 20
std::cout << **p3 << std::endl; // 输出 10
*p3 = p2;
std::cout << **p3 << std::endl; // 输出 20
return 0;
}
```
阅读全文