| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 784 人关注过本帖
标题:[求助]操作符重载中的,这一句是什么意思
只看楼主 加入收藏
wangxiang
Rank: 2
等 级:新手上路
威 望:5
帖 子:376
专家分:0
注 册:2006-3-28
收藏
 问题点数:0 回复次数:6 
[求助]操作符重载中的,这一句是什么意思
如下class
class Integer
{
long i;
public:
Integer(long ll = 0) : i(ll) {}
friend Integer & operator+=(Integer & left,const Integer & right);
};
Integer & operator+=(Integer & left,const Integer & right)
{
if(&left == & right)//这一句是什么意思呢?&left是表示取地址吗?如果是的话,我想这个表达式永远也不会成立,因为定义两个对象时不
left.i += right.i; //可能有相同的地址。那这一句是什么意思呢
return left;
}

[此贴子已经被作者于2006-4-24 18:18:02编辑过]

搜索更多相关主题的帖子: 操作符 重载 
2006-04-24 18:16
maoguoqing
Rank: 6Rank: 6
来 自:重庆
等 级:贵宾
威 望:28
帖 子:2980
专家分:19
注 册:2005-12-5
收藏
得分:0 

如果left,right是同一Integer对象的时候&left == &right就成立啊,
如:Integer a(x);
a += a;
left.i += right.i;这一句很正常啊,这时相当于两倍,只是我觉得没
什么实际意义。


天行健,君子以自强不息!!QQ:68660681
2006-04-24 21:30
wangxiang
Rank: 2
等 级:新手上路
威 望:5
帖 子:376
专家分:0
注 册:2006-3-28
收藏
得分:0 
以下是引用maoguoqing在2006-4-24 21:30:00的发言:

如果left,right是同一Integer对象的时候&left == &right就成立啊,

谢谢你

还是有点不明白
&
left 这里是不是取地址呢?为什么是同一对象时就相等呢?


2006-04-24 22:25
wangxiang
Rank: 2
等 级:新手上路
威 望:5
帖 子:376
专家分:0
注 册:2006-3-28
收藏
得分:0 
qiu zhu

2006-04-25 10:29
aogun
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:638
专家分:0
注 册:2006-4-5
收藏
得分:0 
例如:
Integer x;
x += x;这条语句在重载的操作符中就是Integer & operator+=(x,x),即left是对x的引用,right也是对x的引用,这时你说left和right的地址是不是一样的?

世界上总共有 10 种人,一种懂得什么是二进制 ,一种不懂。
2006-04-25 10:48
myajax95
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:30
帖 子:2978
专家分:0
注 册:2006-3-5
收藏
得分:0 
语法上没有问题,不过好像确实没什么用处。

http://myajax95./
2006-04-25 14:46
wangxiang
Rank: 2
等 级:新手上路
威 望:5
帖 子:376
专家分:0
注 册:2006-3-28
收藏
得分:0 

谢谢楼上所有大虾

2006-04-25 16:14
快速回复:[求助]操作符重载中的,这一句是什么意思
数据加载中...
 
   



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

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