1. 智能指针
作用:堆内存指针+引用计数(控制器,由默认的释放规则,可以自定义),用于堆内存管理,当对象离开生命周期时,引用计数降至为0,释放堆内存。
- 智能指针由3类
std::shared_ptr, std::unique_ptr, std::weak_ptr
- std::shared_ptr初始化
std::shared_ptr pShared1;
std::shared_ptr pShared2(nullptr); // 空智能指针
std::shared_ptr pSharedA(new int(10));
std::shared_ptr pSharedB = std::make_shared<int>(10);
std::shared_ptr pSharedC(new int[3],[](int* p) {delete []p;});
- std::shared_ptr拷贝构造
char * pTemp = new int(10);
std::shared_ptr pA(pTemp);
std::shared_ptr pB(pA); // 拷贝构造
- std::shared_ptr移动构造
char * pTemp = new int(10);
std::shared_ptr pA(pTemp);
std