C++ 智能指针
为了更安全地使用动态对象,标准库定义了两个只能指针类型来管理动态分配的对象当一个对象应该被释放时,指向它的智能指针可以确保自动地把它释放。
理论上来说,一共有三个类型:
shared_ptr
unique_ptr
weak_ptr
本文主要介绍shared_ptr
和weak_ptr
。
简介
shared_ptr
允许多个指针指向同一个对象。
unique_ptr
则“独占”所指向的对象。
weak_ptr
是一个弱引用,指向由shared_ptr
管理的对象,但是不改变引用计数
shared_ptr
首先要介绍make_shared()
函数,顾名思义就是在动态内存中分配一个对象,并返回shared_ptr
,说白了就是让一段动态内存让shared_ptr
去管理,使用的时候对特定类型构造时必须与其构造函数相匹配,例如:
shared_ptr<int> p = make_shared<int>(1);
shared_ptr
允许多个指针指向同一个对象,并且还有一个与之关联的引用计数