| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 615 人关注过本帖
标题:[求助](重载时的返回值s返回给了谁)
取消只看楼主 加入收藏
梦里蓝天
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-7-27
收藏
 问题点数:0 回复次数:3 
[求助](重载时的返回值s返回给了谁)
#include<iostream.h>
class a
{
int x,y;
public:
a(int i,int j)
{
x=i;y=j;
}
a(){}
void disp()
{
cout<<x<<','<<y<<endl;
}
a operator +(a m)
{
a s;
s.x=x+m.x;
s.y=y+m.y;
return s;
}
};
void main()
{
a a1(3,4),a2(5,6),a3;
a1.disp();
a3=a1+a2;
a3.disp();
小弟想问一下上面的成员函数中返回值给了a1还是a3呀,另外为什么写成这样不行呀,达不到加的效果(主函数)
void main()
{
a a1(3,4),a2(5,6),a3;
a1.disp();
a1+a2;
a1.disp();
搜索更多相关主题的帖子: 返回值 重载 
2006-07-27 12:47
梦里蓝天
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-7-27
收藏
得分:0 
谢谢两位,不过小弟想问一下,函数返回值是一个对象嘛,不是要有一个对象去接受吗,请问此例中,语句a1+a2后的
接受者是谁呀,语句a3=a1+a2后的又是那个呀,为什么语句a1+a2的前面不用一个接受的对象呢,像a3=a1+a2,但是也行
的通啊,谢谢啦!!!!

2006-07-27 16:47
梦里蓝天
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-7-27
收藏
得分:0 
首先谢谢啦,不过呢,如果这样的话,那
a operator +(a m)
{
x=x+m.x;
y=y+m.y;
return *this;
}
在主函数中有这么一个语句a1+a2;
运行是成功的,为什么明明要有一个返回的接受者,而只用a1去调用+,而没有返回值的接受者而不出错呢?
不吝赐教!!!!!vc下运行

2006-07-27 17:20
梦里蓝天
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-7-27
收藏
得分:0 
谢谢啦

2006-07-27 19:46
快速回复:[求助](重载时的返回值s返回给了谁)
数据加载中...
 
   



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

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