C++ 智能指针思路,创建对象后让系统负责在正确的时间将其删除。单独的垃圾回收器不在后台运行;按照标准 C++ 范围规则对内存进行管理,以使运行时环境更快速更有效。
智能指针是在堆栈上声明的类模板
// 1.接受一个指针完成初始化
std::unique_ptr<MyClass> ptr_name(new MyClass());
// 2.使用make_
std::unique_ptr<MyClass> ptr_name = std::make_unique<MyClass>();
-
将智能指针声明为一个自动(局部)变量。 (不要对智能指针本身使用
new
或malloc
表达式。) -
在类型参数中,指定封装指针的指向类型。
-
在智能指针构造函数中将原始指针传递至
new
对象。 -
使用重载的
->
和*
运算符访问对象。 -
允许智能指针删除对象。
常见指针包括:
unique_ptr, shared_ptr, weak_ptr