可以使用 make_shared 或者 shared_ptr 的构造函数将现有指针移交给 shared_ptr,如下:
- make_shared:
int *raw_ptr = new int(42);
std::shared_ptr<int> ptr = std::make_shared<int>(raw_ptr);
- shared_ptr 构造函数:
int *raw_ptr = new int(42);
std::shared_ptr<int> ptr(raw_ptr);
可以使用 make_shared 或者 shared_ptr 的构造函数将现有指针移交给 shared_ptr,如下:
int *raw_ptr = new int(42);
std::shared_ptr<int> ptr = std::make_shared<int>(raw_ptr);
int *raw_ptr = new int(42);
std::shared_ptr<int> ptr(raw_ptr);