文章目录 前言 一、std::unique_ptr 二、std::shared_ptr 三、std::weak_ptr 四、使用场景与最佳实践 五、自定义删除器 六、注意事项 总结 前言 在C++中,智能指针是用于自动化内存管理的关键工具,能有效防止内存泄漏和悬空指针等问题。 一、std::unique_ptr 独占所有权:同一时间只能有一个 unique_ptr 指向对象,不可复制,但可通过 std::move 转移所有权。 轻量高效:无额外引用计数开销,适合资源独占场景。 创建方式: auto ptr = std::make_unique<int>(42); // 推荐,避免显式new std::unique_ptr<int> ptr(new int(42)); // 显式构造 自定义删除器(如文件句柄):