| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1452 人关注过本帖
标题:c++primer第四版讲智能指针时在定义HasPtr类的赋值操作符时为什么既使使用计 ...
取消只看楼主 加入收藏
specilize
Rank: 4
等 级:业余侠客
帖 子:126
专家分:247
注 册:2011-2-20
结帖率:100%
收藏
 问题点数:0 回复次数:2 
c++primer第四版讲智能指针时在定义HasPtr类的赋值操作符时为什么既使使用计数加一又减一
可不可以举个具体例子说明一下,说明一下如果不这样做会怎样,请问是不是被赋值的对象已经存在。还有,赋值操作符不是应该返回右操作数吗,为什么好像很多返回左操作数*this
搜索更多相关主题的帖子: 对象 
2011-03-19 14:01
specilize
Rank: 4
等 级:业余侠客
帖 子:126
专家分:247
注 册:2011-2-20
收藏
得分:0 
回复 3楼 玩出来的代码
图片附件: 游客没有浏览图片的权限,请 登录注册

你好,这是我我的截图,我想知道,首先我想先搞懂复制操作符号的含义,他的意思是说,比如我已经定义了int a=3,b=2,那么我执行a=b,(即这两个操作数先存在才可以赋值)时才使用我的重载版本,还是说假如我这样定义 string a=“abcd”,然后我这样定义string b=a,(b不事先存在)在这种情况下,那是不是调用我的重载版本,还是调用复制构造函数的版本,我老是搞不懂像string b=a 的是调用哪个版本。第二个问题时,上面是我从书上截出来的图片,我的理解是那个use是大家共享的,所以加了他有减了他不就使他保持原值吗,这不就和直接执行下面三行代码一样的效果吗(即delete下面三行),虽然书上说防止自身赋值,但我还是搞不懂,不知你知不知道我在说什么,如果知道,麻烦说一下,谢谢。
2011-03-20 19:41
specilize
Rank: 4
等 级:业余侠客
帖 子:126
专家分:247
注 册:2011-2-20
收藏
得分:0 
回复 5楼 玩出来的代码
第一个明白了,第二个经你的解释,有点明白了,我在看看,非常感谢你。
2011-03-20 22:50
快速回复:c++primer第四版讲智能指针时在定义HasPtr类的赋值操作符时为什么既使 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017765 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved