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;
}
~
~