C++ 标准库 - <memory>

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 打破,见教学篇。

本头文件到此结束。可返回memory 总览或进入sstream。