std::make_shared<T>()
时间: 2023-11-16 17:58:26 浏览: 228
C++11 std::shared_ptr总结与使用示例代码详解
这是 C++11 中的一个函数模板,用于创建一个指向类型 T 的 shared_ptr,并返回该指针。make_shared 可以避免直接使用 new 创建对象时存在的一些问题,如内存泄漏、异常安全等问题。使用 make_shared 创建对象时,对象和控制块(用于管理对象的引用计数等信息)会被一起分配在连续的内存块中,从而提高了对象的访问性能和内存利用率。例如:
```
std::shared_ptr<int> p1 = std::make_shared<int>(42);
std::shared_ptr<std::string> p2 = std::make_shared<std::string>("hello");
```
这样创建的 shared_ptr 对象会自动进行内存管理,当对象不再被引用时,会自动释放对象所占用的内存。同时,由于使用了 make_shared,对象和控制块会被一起分配,可以避免因为分别分配导致的额外内存开销和性能损失。
阅读全文