std::shared_ptr<int> ptr(new int(42));的make_shared写法是什么
时间: 2023-11-04 10:24:43 浏览: 68
`std::make_shared` 是一个工厂函数,可以方便地创建一个 `std::shared_ptr` 对象,并且避免了使用 `new` 进行内存分配的操作。使用 `std::make_shared` 可以提高代码的效率和可读性。
以下是使用 `std::make_shared` 创建一个 `std::shared_ptr<int>` 对象的示例代码:
```
#include <memory>
#include <iostream>
int main() {
// 使用make_shared创建一个shared_ptr对象
std::shared_ptr<int> ptr = std::make_shared<int>(42);
// 使用*操作符获取指向的值
std::cout << *ptr << std::endl;
// 使用use_count函数获取引用计数
std::cout << ptr.use_count() << std::endl;
return 0;
}
```
以上代码使用 `std::make_shared` 创建了一个 `std::shared_ptr<int>` 对象,并使用 `*` 操作符获取指向的值,使用 `use_count` 函数获取引用计数。需要注意的是,使用 `std::make_shared` 可以避免忘记释放内存的风险,并且可以提高代码的效率和可读性。
阅读全文