免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1678 | 回复: 3
打印 上一主题 下一主题

智能指针求助! [复制链接]

yujianweilai 该用户已被删除
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-09-24 01:06 |只看该作者 |倒序浏览
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
2 [报告]
发表于 2007-09-24 09:21 |只看该作者
和实现有关吧,一般都是转移之后delete的,所以应该是段错误。
如果输出10确实很奇怪。

论坛徽章:
0
3 [报告]
发表于 2007-09-24 10:27 |只看该作者
所有权转移不是指delete,而是指由拥有者负责清除。

论坛徽章:
0
4 [报告]
发表于 2007-09-24 11:00 |只看该作者
和实现有关:
ptr2=ptr1;
一种处理是将ptr2的指针delete掉,并赋以ptr1的指针值,再将ptr1的指针清0。这时ptr1不可用*ptr1会造成Segmentation fault
另一种处理是基于引用计数的,这时除了数据指针外还需要有一个int用于记录引用次数,析构时也只是指引用计数-1,当引用计数=0时delete数据指针。这种情况下ptr1和ptr2都是可用的
第二种方法更安全,但实现要复杂一些
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP