weixin_45724789
buling?
2019-10-11 10:47
采纳率: 44%
浏览 271

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

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • JonathanYan
    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);
    
    点赞 评论

相关推荐