溫馨提示×

c++怎么實現智能指針

c++
小億
93
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
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女