当使用cout和cin时,"<<"和">>"运营商在做什么,为什么要使用它们?

时间:2016-05-25 01:11:55

标签: c++ operators bit-manipulation iostream

例如:

TYPE

为什么我们使用"<<"和">>"运营商在这?他们在做什么?我有点理解变换,但我不知道这是如何工作的。

3 个答案:

答案 0 :(得分:9)

它们被称为流插入运算符<<)和流提取运算符>>)。

这些运算符与左右位移运算符相同(即使它们具有不同的名称)。位移运算符过载,因此当左侧是流时,它们会读取或写入该流。

他们就像任何函数调用一样 - 它的工作方式如下:

leftShift(leftShift(leftShift(leftShift(cout, "You are "), age), " years old!"), endl);

除了该函数被称为operator<<而不是leftShift 严格地说,没有理由称为leftShift的函数必须进行左移,同样没有理由称为operator<<的函数必须进行左移。

答案 1 :(得分:1)

它是运算符重载。对于流类,bitshift运算符被重载以用于不同的目的(读取和写入流)。请参阅:http://www.cplusplus.com/reference/ostream/ostream/operator%3C%3C/

答案 2 :(得分:1)

>><<已作为流功能重载,例如:

std::ostream & operator << (std::ostream &, int) 

(和其他人)

以便(在这种情况下)当cout&lt;&lt;使用10,它调用将打印值的重载函数。

它与位移无关,只是它使用相同的运算符&#39;&lt;&lt;&lt;&quot;&#和&#39;&gt;&gt;&#39;。