shared_ptr使用方式
时间: 2023-09-07 11:17:57 浏览: 76
shared_ptr是C++11中的一个智能指针,用于管理动态分配的内存。它可以记录有多少个shared_ptr指向同一块内存,并在最后一个指针离开作用域时自动释放内存。
使用shared_ptr的步骤如下:
1.包含<memory>头文件。
2.使用make_shared函数创建一个shared_ptr对象,该函数会动态分配内存并返回一个指向该内存的shared_ptr对象。
3.使用shared_ptr的reset()方法将其指向其他内存,或者使用赋值操作符=将其指向另一个shared_ptr对象。
4.在使用shared_ptr指向的对象时,可以通过get()方法获取其原始指针,也可以通过*运算符获取指向的对象。
5.当最后一个指向该内存的shared_ptr对象离开作用域时,shared_ptr会自动调用delete释放内存。
示例代码如下:
```
#include <memory>
#include <iostream>
int main()
{
// 创建一个shared_ptr指向动态分配的int类型内存
std::shared_ptr<int> p1 = std::make_shared<int>(42);
std::cout << *p1 << std::endl; // 输出42
// 复制p1,p2和p1指向相同的内存
std::shared_ptr<int> p2(p1);
std::cout << *p2 << std::endl; // 输出42
// 重置p1,p2和p1指向不同的内存
p1.reset(new int(10));
std::cout << *p1 << std::endl; // 输出10
std::cout << *p2 << std::endl; // 输出42
return 0;
}
```
阅读全文