找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 1487|回复: 2

[求助]重载问题

[复制链接]
发表于 2009-11-3 03:12:49 | 显示全部楼层 |阅读模式 IP:江苏扬州
我总是搞不懂运算符重载的问题比如:
#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分别返回的是什么,返回给谁。
发表于 2009-11-3 03:12:50 | 显示全部楼层 IP:江苏扬州
我知道"cin>>"是函数重载可以理解

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>>
我搞不懂它的return output和return input分别返回的是什么

返回的是输入istream输出ostream类型对象,是为了进行多次操作
回复

使用道具 举报

发表于 2009-11-3 03:12:51 | 显示全部楼层 IP:江苏扬州
cin是istream这个类的对象
cin>>c1
操作完之后,返回一个istream &,然后是连接下一个重载(cin>>ci)>>
我搞不懂它的return output和return input分别返回的是什么
意味着下一次重载操作时,操作符左面的还是istream &,这样可以连续操作
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-30 13:30 , Processed in 0.183209 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表