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等容器来管理动态分配的数组。