深入学习c++--智能指针(四)--使用建议
1. 不要自己手动管理资源
2. 一个裸指针不要用两个shared_ptr管理,unique_ptr
3. 使用shared_ptr作为函数的接口,如果有可能用 const shared_ptr&的形式
4. shared_ptr weak_ptr和裸指针相比,会大很多,并且效率上会有影响,尤其在多线程模式下。时间也上也是
可以这么写:
// 只进行一次new, 至少可以节省8字节
ObjectPtr obj5 = std::make_shared<Object>(3);
5. enable_shared_from_this,shared_from_this()和构造析构函数一样,某些情况下不能使用。
6. 某些情况下,会出现内存不会降的问题。尤其是使用weak_ptr来处理循环引用的问题
7. 如果有可能,优先使用类的实例,其次万不得已使用std::unique_ptr,万不得已使用std::shared_ptr