| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 414 人关注过本帖
标题:[求助]重载问题
只看楼主 加入收藏
心动音符
Rank: 1
等 级:禁止访问
威 望:1
帖 子:832
专家分:0
注 册:2005-9-15
收藏
 问题点数:0 回复次数:2 
[求助]重载问题

我总是搞不懂运算符重载的问题比如:
#include <iostream>
using namespace std;
class Complex
{public:
friend ostream &operator <<(ostream &,Complex &);
friend istream &operator >>(istream &,Complex &);
private:
double real;
double imag;
};
ostream &operator <<(ostream &output,Complex &c)
{output<<"("<<c.real<<"+"<<c.imag<<"i)";
return output;}
istream &operator >>(istream &input,Complex &c)
{cout<<"input real part and imaginary part of complex number:";
input>>c.real>>c.imag;
return input;}
int main()
{Complex c1,c2;
cin>>c1>>c2; /*这句连着输入两个值是怎么输入的,我知道"cin>>"是函数重载可以理解,但后面又出现个>>c2我就不理解了难道(cin>>c1>>)也是函数的重载?哪位有空,请详细解释一下。谢谢*/
cout<<c1<<endl;
cout<<c2<<endl;
return 0;
}
我输入5 6
它回输出(5+6I)但我搞不懂它的return output和return input分别返回的是什么,返回给谁。

搜索更多相关主题的帖子: 重载 
2006-06-14 16:15
aogun
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:638
专家分:0
注 册:2006-4-5
收藏
得分:0 
[QUOTE]我知道"cin>>"是函数重载可以理解[/QUOTE]
istream &operator >>(istream &input,Complex &c)
{cout<<"input real part and imaginary part of complex number:";
input>>c.real>>c.imag;
return input;}
重载的是istream类型和Complex类型之间的操作符>>,而不是重载cin>>
[QUOTE]我搞不懂它的return output和return input分别返回的是什么[/QUOTE]
返回的是输入istream输出ostream类型对象,是为了进行多次操作

世界上总共有 10 种人,一种懂得什么是二进制 ,一种不懂。
2006-06-14 17:35
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
cin是istream这个类的对象
cin>>c1
操作完之后,返回一个istream &,然后是连接下一个重载(cin>>ci)>>
我搞不懂它的return output和return input分别返回的是什么
意味着下一次重载操作时,操作符左面的还是istream &,这样可以连续操作

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-06-15 09:19
快速回复:[求助]重载问题
数据加载中...
 
   



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

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