buling? 2019-10-11 10:47 采纳率: 0%
浏览 293
已采纳

std::shared_ptr<TYPE>(up(), down) 这句话什么意思?

我知道可以指定构造和析构函数,up是构造函数,down是析构函数,但这句话总体是什么意思呢?什么时候会调这句话里的析构函数呢?

  • 写回答

1条回答 默认 最新

  • JonathanYan 2019-10-11 11:03
    关注

    总体意思就是返回的共享指针通过up函数构造,在释放的时候调用down释放。
    释放这个指针的时候调用析构,当没有shared_ptr变量指向这个指针的时候。
    但是shared_ptr的构造函数里没有指定两个函数指针的用法,而且你的第一个up是有括号的,所以你的代码应该等价于如下。

    TYPE *p = up();
    shared_ptr<TYPE> ptr = shared_ptr<TYPE>(p, down);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测