c++std::make_shared用法
时间: 2023-11-16 13:18:59 浏览: 90
std::make_shared 是 C++11 中引入的一个函数模板,用于在动态内存中创建对象并返回一个指向该对象的 shared_ptr 智能指针。
使用 std::make_shared 的语法如下:
```cpp
std::shared_ptr<T> std::make_shared<Args>(Args&&... args);
```
这里的 T 是要创建对象的类型,而 Args 是传递给 T 的构造函数的参数类型。Args&&... args 是可变参数模板,允许你传递任意数量的参数。
使用 std::make_shared 的好处是它可以更高效地分配内存和管理对象的生命周期。它将对象和分配的内存合并在一起,减少了额外的内存分配次数,并且能够正确地处理异常情况。
下面是一个示例,展示了如何使用 std::make_shared 创建一个包含整数值的 shared_ptr 智能指针:
```cpp
#include <iostream>
#include <memory>
int main() {
std::shared_ptr<int> ptr = std::make_shared<int>(42);
std::cout << *ptr << std::endl; // 输出 42
return 0;
}
```
在这个示例中,我们使用 std::make_shared 创建了一个指向整数值为 42 的 shared_ptr 智能指针。通过解引用该指针,我们可以访问所指向的整数值并进行输出。
希望这个例子能够帮助你理解 std::make_shared 的用法。如果还有其他问题,请随时提问!
阅读全文