天天看点

C++自学25:共享智能指针(make_shared/shared_ptr/reset/use_count)

std::shared_ptr<int> a = std::make_shared<int>(666);
std::shared_ptr<int> b = a;
std::shared_ptr<int> c = a;
std::shared_ptr<int> d = a;
std::cout << a << std::endl;
std::cout << b << std::endl;
std::cout << c << std::endl;
std::cout << d << std::endl;      
std::shared_ptr<int> a = std::make_shared<int>(666);
std::shared_ptr<int> b = a;
std::shared_ptr<int> c = a;
std::shared_ptr<int> d = a;
// 打印出4,表示有4个指针指向666
std::cout << d.use_count() << std::endl;      
std::shared_ptr<int> a = std::make_shared<int>(666);
std::shared_ptr<int> b = a;
std::shared_ptr<int> c = a;
std::shared_ptr<int> d = a;
a.reset();
// 打印出3,原来是4,因为a.reset了,所以还剩下bcd
std::cout << d.use_count() << std::endl;      
j