清泛IT社区

标题: shared_ptr指针被赋值后,原指针会引用清零、自动释放。 [打印本页]

作者: 清泛网    时间: 2016-02-15 15:49
标题: shared_ptr指针被赋值后,原指针会引用清零、自动释放。
shared_ptr指针被赋值后,原指针会引用清零、自动释放。
  1. std::shared_ptr<int> intg;

  2. void foo(std::shared_ptr<int> p)
  3. {
  4.         intg = p;   // 原指针释放,存储新的智能指针

  5.         //*(intg.get()) = *(p.get());   // 原指针不释放,仅修改原指针指向的内容
  6. }

  7. int _tmain(int argc, _TCHAR* argv[])
  8. {
  9.         {
  10.                 std::shared_ptr<int> sp(new int(2));
  11.                 intg = sp;
  12.         }

  13.         std::shared_ptr<int> sp22(new int(8));
  14.         foo(sp22);

  15.         printf("%d\n", intg.use_count());
  16.         printf("%d\n", *(intg).get());

  17.         return 0;
  18. }
复制代码







欢迎光临 清泛IT社区 (https://bbs.tsingfun.com/) Powered by Discuz! X3.3