智能指针是C++中管理动态内存的重要工具,能够自动处理资源释放,避免内存泄漏。以下是核心内容:
1. 智能指针类型
unique_ptr
🔒 专属所有权,对象生命周期结束时自动释放unique_ptr_Usageshared_ptr
🤝 共享所有权,通过引用计数管理资源shared_ptr_Usageweak_ptr
📏 用于打破循环引用,观察shared_ptr
状态weak_ptr_Usage
2. 使用场景
unique_ptr
适用于独占资源(如文件句柄)shared_ptr
适合多对象共享资源weak_ptr
必须与shared_ptr
配合使用,常用于缓存或观察者模式
3. 代码示例
std::unique_ptr<int> uPtr = std::make_unique<int>(10);
std::shared_ptr<int> sPtr = std::make_shared<int>(20);
std::weak_ptr<int> wPtr = std::shared_ptr<int>(new int(30));
4. 扩展阅读
如需深入了解内存管理机制,可访问 C++ 内存管理 章节。