shared_ptr的用法注意

shared_ptr 不能这样用

int *p1=new int;
std::shared_ptr<int> p2 (p1);
std::shared_ptr<int> p3 (p1);

问题在于引用计数混乱,不是同一个 sharing group ,指向同一个对象

可以这样用

std::shared_ptr<int> p2 (new int);

std::shared_ptr<int> p3 (p2);

这样,指向同一处内存的智能指针的引用计数是统一的

 

posted @ 2019-08-19 10:59  Asele  阅读(554)  评论(0)    收藏  举报