在传统 C++ 编程中,内存泄漏是一个常见的问题。智能指针的引入极大地简化了资源管理,尤其在 C++11 以后,unique_ptr
、shared_ptr
和 weak_ptr
被标准化并广泛应用于现代 C++ 项目中。
本文将全面讲解三种智能指针的使用场景、内部机制、常见陷阱,并通过图示和代码示例帮助读者构建对智能指针的系统性理解。
智能指针类型 | 所有权 | 引用计数 | 可拷贝性 | 自动释放 |
---|---|---|---|---|
unique_ptr | 唯一 | 否 | 否 | 是 |
shared_ptr | 共享 | 是 | 是 | 是 |
weak_ptr | 非拥有 | 是 | 是 | 否 |
cpp复制编辑#include<memory>
std::unique_ptr<int> ptr = std::make_unique<int>(10);
std::cout << *ptr << std::endl;
cpp复制编辑std::unique_ptr<int> ptr2 = std::move(ptr);
文章评论(0条评论)
登录后参与讨论