| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 488 人关注过本帖
标题:[讨论]关于引用&的一个问题
取消只看楼主 加入收藏
四处漂泊
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2005-11-28
收藏
 问题点数:0 回复次数:2 
[讨论]关于引用&的一个问题

#include<iostream.h>
class Increase
{
public:
Increase(int x):value(x) {}
Increase& operator++(); //换成Increase Increase::operator ++()
Increase operator++(int); //后增量
void display()
{
cout<<"the value is:"<<value<<endl;
}
private:
int value;
};
Increase& Increase::operator ++() //换成Increase Increase::operator ++()
{
value++;//先增量
return *this;//再返回原对象
}
Increase Increase::operator ++(int)
{
Increase temp(*this); //临时对象存放原有对象值
value++; //原有对象增量修改
return temp; //返回原有对象值
}
void main()
{
Increase n(20);
n.display();
(n++).display(); //显示临时对象值
n.display(); //显示原有对象
++n;
n.display();
++(++n);
n.display();
(n++)++; //第二次增量操作对临时对象进行
n.display();
}


把Increase& Increase::operator ++() 换成Increase Increase::operator ++() 结果为什么就不一样了呢/?

搜索更多相关主题的帖子: private display include public color 
2006-11-13 23:09
四处漂泊
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2005-11-28
收藏
得分:0 
[QUOTE]

当你把前增量重载函数返回的是值得时候
void main()
{
Increase n(20);
n.display(); //
(n++).display(); //
n.display(); //
++n;
n.display(); //
++(++n); //这里第一次加的时候,被加的是当前对象,而它返回一个值,那么第二次加,被加的对象是返回的值,而不是当前的对象n
n.display();
(n++)++; //
n.display();
}

[/QUOTE]
我是问把Increase& operator++(); 这个函数里面的&去掉为什么不同??????





2006-11-15 21:01
四处漂泊
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2005-11-28
收藏
得分:0 

明白了
谢谢了

2006-11-16 10:43
快速回复:[讨论]关于引用&的一个问题
数据加载中...
 
   



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

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