2021
10-20
10-20
深入学习C++智能指针之shared_ptr与右值引用的方法
目录1.介绍2.初始化方法2.1通过构造函数初始化2.2通过拷贝和移动构造函数初始化2.3通过std::make_shared初始化2.4通过reset方法初始化3.获取原始指针4.指定删除器5.参考链接1.介绍在C++中没有垃圾回收机制,必须自己释放分配的内存,否则就会造成内存泄露。解决这个问题最有效的方法是使用智能指针(smartpointer)。智能指针是存储指向动态分配(堆)对象指针的类,用于生存期的控制,能够确保在离开指针所在作...
继续阅读 >
最近看代码,智能指针用的比较多,自己平时用的少,周末自己总结总结。方便后续使用。std::shared_ptr大概总结有以下几点:(1)智能指针主要的用途就是方便资源的管理,自动释放没有指针引用的资源。(2)使用引用计数来标识是否有多余指针指向该资源。(注意,shart_ptr本身指针会占1个引用)(3)在赋值操作中,原来资源的引用计数会减一,新指向的资源引用计数会加一。std::shared_ptr<Test>p1(newTest);std::shared_ptr<Test>p2(...