清泛IT社区App Inventor 2 中文社区

搜索

扫码访问移动社区 移动社区,您的掌上技术专家

关注我,精彩不错过! 关注我,精彩不错过!

扫码安装最新版AI伴侣 最新版AI伴侣v2.72

Aia Store .aia 源码一站式解决方案 发布日志AI2连接测试ai2Starter模拟器

开通会员送SVIPApp Inventor 2 拓展有奖征文 VIP会员享专有教程,免费赠送基础版*技术支持服务! AI2入门必读中文文档中文教程IoT专题

查看: 787|回复: 0
打印 上一主题 下一主题

shared_ptr指针被赋值后,原指针会引用清零、自动释放。

  • TA的每日心情
    开心
    2024-02-17 18:16
  • 签到天数: 14 天

    [LV.3]偶尔看看II

    546

    主题

    715

    帖子

    1万

    积分

    管理员

    这里没有广告...

    Rank: 9Rank: 9Rank: 9

    积分
    10709
    QQ
    跳转到指定楼层
    楼主
    发表于 2016-02-15 15:49:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    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. }
    复制代码


    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    © 2024 tsingfun.com, Inc.  沪ICP备2020034476号-1  沪公网安备31011702000040号

    GMT+8, 2024-11-25 06:20 , Processed in 0.019440 second(s), 31 queries .