首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

《C++ primer》疑问解决方法

2012-04-28 
《C++ primer》疑问在讲到string对象的读写的时候,有这么一段话:输入与输出操作的行为与内置类型操作基本相

《C++ primer》疑问
在讲到string对象的读写的时候,有这么一段话:
   
  输入与输出操作的行为与内置类型操作基本相似。尤其是,这些操作符返回左操作数作为运算结果。因此,我们可以把多
个读操作或多个写操作放在一起:
 

HTML code
string s1,s2;cin>>s1>>s2;      //read first input into s1,second into s2cout<<s1<<s2<<endl;   //write both stringsC/C++


请问:这段话是啥意思?

  先谢谢了

[解决办法]
因为ostream& operator << (ostream &os, const string &);

cout<<s1<<s2<<endl

等于

operator << (operator << (cout, s1), s2 );
[解决办法]
C/C++ code
ostream operator<<(ostream &,class T)
[解决办法]
由于string类里面已经重载了<< >> 这两个操作符,
ostream& operator<< (const ostream& out)
关键在于返回值这里,返回的是一个ostream类的对象的引用。
因此cout << s1 << s2 << endl;
<=> (cout << s1)结果返回一个新的ostream对象的引用,然后这个引用就可以继续
输出s2,再返回一个引用,再输出endl,遇到分号,结束输出。

热点排行