std::shared_pt
时间: 2023-08-16 17:10:30 浏览: 94
shared_ptr
`std::shared_ptr` 是 C++ 中的智能指针类,用于管理动态分配的对象的生命周期。它是 C++11 引入的标准库类型,位于 `<memory>` 头文件中。
`std::shared_ptr` 使用引用计数的方式来管理资源的释放。每个 `std::shared_ptr` 对象都包含一个计数器,记录有多少个 `std::shared_ptr` 共享同一个对象。当计数器减为零时,资源会被自动释放。
使用 `std::shared_ptr` 的语法如下:
```cpp
std::shared_ptr<Type> ptr = std::make_shared<Type>(args);
```
其中,`Type` 是指向要管理的对象类型,`args` 是传递给对象构造函数的参数。
`std::shared_ptr` 支持拷贝构造和赋值操作,每次拷贝或赋值都会增加引用计数。当 `std::shared_ptr` 超出作用域或通过显式调用 `reset()` 来重新分配资源时,引用计数会减少。当引用计数为零时,资源会被销毁。
`std::shared_ptr` 还提供了其他一些成员函数,例如 `get()` 返回指向托管对象的原始指针,`use_count()` 返回引用计数的值,`reset()` 释放当前托管的资源并重新分配新的资源等。
使用 `std::shared_ptr` 可以避免手动管理动态分配对象的释放,从而减少内存泄漏和悬挂指针等问题。它在多个对象共享同一个资源时非常有用,但需要注意避免循环引用,以免造成内存泄漏。
阅读全文