智能指针是C++中管理动态内存的重要工具,能够自动处理资源释放,避免内存泄漏。以下是核心内容:

1. 智能指针类型

  • unique_ptr
    🔒 专属所有权,对象生命周期结束时自动释放

    unique_ptr_Usage

  • shared_ptr
    🤝 共享所有权,通过引用计数管理资源

    shared_ptr_Usage

  • weak_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++ 内存管理 章节。