c++ std::make_shared
时间: 2023-10-24 12:29:52 浏览: 280
C++11 std::shared_ptr总结与使用示例代码详解
`std::make_shared` 是 C++ 标准库中的一个函数模板,用于创建一个共享指针(shared pointer)对象。它接受参数并返回一个指向动态分配的对象的共享指针。
使用 `std::make_shared` 可以方便地创建共享指针,而不需要显式调用 `new` 进行内存分配。该函数模板接受任意数量的参数,并将这些参数传递给对象的构造函数来初始化对象。
以下是 `std::make_shared` 的示例用法:
```cpp
#include <memory>
class MyClass {
public:
MyClass(int value) : m_value(value) {
// 构造函数
}
private:
int m_value;
};
int main() {
// 使用 std::make_shared 创建共享指针
std::shared_ptr<MyClass> ptr = std::make_shared<MyClass>(42);
return 0;
}
```
在上面的示例中,我们使用 `std::make_shared` 创建了一个共享指针 `ptr`,并传递了参数 `42` 给 `MyClass` 的构造函数来初始化对象。这样就可以通过 `ptr` 来访问这个动态分配的对象了。
阅读全文