C++智能指針是一種用于管理動態(tài)分配的內(nèi)存資源的工具,可以幫助防止內(nèi)存泄漏和懸掛指針等問題。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
的構(gòu)造函數(shù)來共享所有權(quán)使用std::unique_ptr:
#include <memory>
std::unique_ptr<Type> ptr = std::make_unique<Type>(args);
ptr->method()
或(*ptr).method()
需要注意的是,智能指針不應(yīng)與原始指針混合使用,并且應(yīng)避免循環(huán)引用。此外,在使用智能指針時,應(yīng)避免向其構(gòu)造函數(shù)傳遞動態(tài)分配的數(shù)組,應(yīng)使用std::vector或std::array等容器來管理動態(tài)分配的數(shù)組。