关注
再好好解释一下:process的形参是shared_ptr<int> ptr,那么把 int
*x传进去是很错误的,因为x是普通指针,不能直接强转为shared_ptr<int>类型,所以"process( x )
"是错误的,但是primer是告诉你这样做是错误的,没说是这样定义好了,然后告诉你下面这行"process( shared_ptr<int>(x) ) ;
"可以通过编译,但是这样的话,这是一个临时对象" shared_ptr<int>(x)
",传进process里后,执行后会销毁,但是引用计数会减1,因为你刚刚开始使用的普通指针,引用计数为0,拷贝后也是1,销毁后就是0,那么int
j=*x;就是一个很危险的行为,如果你使用的上面的shared_ptr<int> p(new
int(1024));那么刚刚开始引用计数就是1了,int i=*p;就是正确的
查看原帖
3 2
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客新年AI问运 #
6599次浏览 110人参与
# 工作中的卑微时刻 #
33456次浏览 199人参与
# 牛客AI体验站 #
16304次浏览 288人参与
# 多益网络工作体验 #
63196次浏览 306人参与
# 有必要和同事成为好朋友吗? #
1065次浏览 21人参与
# 正在实习的碎碎念 #
1645108次浏览 13716人参与
# 面试中的破防瞬间 #
1190333次浏览 11027人参与
# 工作一周年分享 #
52360次浏览 274人参与
# 滴!实习打卡 #
786651次浏览 6841人参与
# 秋招吐槽大会 #
304372次浏览 1523人参与
# 机械人的薪资开到多少,才适合去? #
165063次浏览 571人参与
# 你最满意的offer薪资是哪家公司? #
71416次浏览 353人参与
# 大学最后一个寒假,我想…… #
89309次浏览 809人参与
# 你怎么看待AI面试 #
146060次浏览 786人参与
# 哪些公司真双非友好? #
62928次浏览 268人参与
# OC/开奖 #
411340次浏览 2282人参与
# 为了实习逃课值吗? #
65810次浏览 526人参与
# 如果可以选,你最想从事什么工作 #
722130次浏览 4870人参与
# 重来一次,你会对开始求职的自己说 #
32878次浏览 388人参与
# 如何提高实习转正率? #
86575次浏览 505人参与
曼迪匹艾公司福利 149人发布