C++ std::make_shared<T>(args...) 创建对象并由多个 shared_ptr 共享所有权。最后一个指针析构时释放对象。
原型
template<class T, class... Args>
shared_ptr<T> make_shared(Args&&... args);参数
args:构造T的实参。
返回值
shared_ptr<T>。
示例
#include <iostream>
#include <memory>
int main() {
auto p = std::make_shared<int>(3);
auto q = p;
std::cout << p.use_count() << " " << *q << "\n";
return 0;
}输出:
2 3
注意事项
拷贝 shared_ptr 会使引用计数加一,不是拷贝 int。循环引用需要 weak_ptr 打破,见教学篇。