读书人

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

发布时间: 2012-04-28 11:49:53 作者: rapoo

《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,遇到分号,结束输出。

读书人网 >C++

热点推荐