温馨提示×

c++怎么实现智能指针

c++
小亿
83
2024-01-12 23:24:22
栏目: 编程语言

在C++中,可以使用std::shared_ptr和std::unique_ptr来实现智能指针。这两个智能指针类都在头文件中定义。

  1. 使用std::shared_ptr: std::shared_ptr是一种引用计数智能指针,可以在不同的地方共享同一个对象。当最后一个std::shared_ptr超出作用域时,对象会被自动销毁。

    示例代码:

    #include <memory>
    
    int main() {
        std::shared_ptr<int> ptr(new int(5));
        *ptr = 10;
        std::cout << *ptr << std::endl;
        return 0;
    }
    
  2. 使用std::unique_ptr: std::unique_ptr是一种独占智能指针,保证只有一个指针可以指向该对象。当std::unique_ptr超出作用域时,对象会被自动销毁。

    示例代码:

    #include <memory>
    
    int main() {
        std::unique_ptr<int> ptr(new int(5));
        *ptr = 10;
        std::cout << *ptr << std::endl;
        return 0;
    }
    

这些智能指针类可以自动进行内存管理,无需手动释放资源,从而有效地避免内存泄漏等问题。

0