C++智能指針是一種用于管理動態分配的內存資源的工具,可以幫助防止內存泄漏和懸掛指針等問題。C++11引入了兩種主要的智能指針:std::shared_ptr和std::unique_ptr。
使用std::shared_ptr:
#include <memory>
std::shared_ptr<Type> ptr = std::make_shared<Type>(args);
ptr->method()
或(*ptr).method()
std::shared_ptr
的構造函數來共享所有權使用std::unique_ptr:
#include <memory>
std::unique_ptr<Type> ptr = std::make_unique<Type>(args);
ptr->method()
或(*ptr).method()
需要注意的是,智能指針不應與原始指針混合使用,并且應避免循環引用。此外,在使用智能指針時,應避免向其構造函數傳遞動態分配的數組,應使用std::vector或std::array等容器來管理動態分配的數組。