关于混合使用智能指针和内置指针的问题集合(问题搜集中)

1.定义不当的 

#include <iostream>
#include <string>
#include <memory>
using namespace std;
int main()
{
shared_ptr<int> p(new int(123));
shared_ptr<int> p1(p);
//下面定义可以通过编译,但是不能使用use_count成员函数
//也可以解引用,结果是1,鬼知道是咋回事,所以给shared_ptr赋值的对象也是shard_ptr时候,别多转换代码,否则错误一大堆,还不能正常使用。
shared_ptr<int> p2(shared_ptr<int>(p));//圆括号内直接放p就可以了。
cout << p.use_count() << endl;
cout << p1.use_count() << endl;
cout << p2.use_count() << endl;

return 0;
}                                                                          
~                                                                               
~      

 

上一篇:share_ptr内存泄漏


下一篇:智能指针