首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重载插入运算符与加号运算符的区别

重载插入运算符与加号运算符的区别
EN

Stack Overflow用户
提问于 2021-05-14 01:14:10
回答 1查看 42关注 0票数 0

>>+运算符都是二元运算符。它们在语法上的差异是什么意思?

为什么>>会有返回类型(引用返回)?我知道这很愚蠢,但我真的搞不懂他们的语法,我想要一个简短的解释。

代码语言:javascript
复制
Sparse operator +(Sparse &s); //code for plus operator

friend istream & operator >>(istream &is,Sparse &s); //code for insertion operator
EN

回答 1

Stack Overflow用户

发布于 2021-05-14 01:19:16

operator+组合两个输入对象的数据(在您的示例中,左边的对象是*this),并返回一个包含组合数据的新对象。

operator>> (和operator<<)返回对正在操作的流的引用。这允许链接多个流操作,例如:

代码语言:javascript
复制
cin >> var1 >> var2 ...;
// which is the same as:
// cin.operator>>(var1).operator>>(var2) ...
// or:
// operator>>(operator>>(cin, var1), var2) ...
// etc, depending on the particular types and operator overloads being used

cout << var1 << var2 ...;
// which is the same as:
// cout.operator<<(var1).operator<<(var2) ...
// or:
// operator<<(operator<<(cout, var1), var2) ...
// etc, depending on the particular types and operator overloads being used

如果不能链接,流操作将不得不单独调用,例如:

代码语言:javascript
复制
cin >> var1;
cin >> var2;
...

cout << var1;
cout << var2;
...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67523416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档