C++ make_shared
时间: 2024-01-18 21:03:43 浏览: 103
c++指针源码memory之-Ref-count-obj2 和STD forward 和 STD make-shared
make_shared是C++中的一个函数模板,用于创建一个指向动态分配的对象的std::shared_ptr智能指针。它可以在堆上分配内存并初始化对象。
以下是make_shared函数的语法:
```cpp
std::shared_ptr<T> make_shared<T>(Args&&... args);
```
其中,T是要分配的对象的类型,Args是传递给对象构造函数的参数。
下面是一个示例,演示了如何使用make_shared函数创建一个指向int类型对象的shared_ptr:
```cpp
std::shared_ptr<int> ptr = std::make_shared<int>(42);
```
这将创建一个指向值为42的int对象的shared_ptr。
需要注意的是,make_shared函数可以避免显式地使用new运算符来分配内存,并且可以更高效地管理内存,因为它将对象和控制块(用于跟踪引用计数等信息)一起分配在一块连续的内存中。
阅读全文