std::make_shared<T>()
时间: 2023-11-16 09:05:47 浏览: 60
C++11 std::shared_ptr总结与使用示例代码详解
std::make_shared<T>() 是 C++ 标准库中的一个函数模板,用于创建一个共享指针(shared pointer),并返回指向类型 T 的新对象的指针。
它的作用是在动态内存中分配一个对象,并将其包装在一个智能指针中,以便对其进行自动内存管理。与直接使用 new 运算符相比,make_shared 具有更好的性能和异常安全性。
示例用法如下:
```cpp
#include <memory>
struct MyClass {
int value;
};
int main() {
auto ptr = std::make_shared<MyClass>(); // 创建一个智能指针,指向一个 MyClass 对象
ptr->value = 42; // 对 MyClass 对象进行操作
return 0;
}
```
在上面的示例中,我们使用 make_shared 创建了一个智能指针 ptr,它指向一个动态分配的 MyClass 对象。我们可以通过箭头运算符 -> 访问 MyClass 对象的成员变量 value,并将其设置为 42。
使用 make_shared 可以避免手动管理内存释放,因为智能指针在超出范围时会自动释放所指向的对象。这有助于减少内存泄漏和其他与手动内存管理相关的问题。
阅读全文