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

When using cout and cin, what are the "<<" and ">>" operators doing and why do we use them?

本文关键字:lt gt 为什么 我们 什么 cin cout 运算符      更新时间:2023-10-16

例如:

int age;
cin >> age;
cout << "You are " << age << " years old!" << endl;

为什么我们在这里使用"<<"和">>"运算符?他们在做什么?我有点理解位移,但我不明白这里是如何工作的。

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

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

它们就像任何函数调用一样 - 它的工作原理如下:

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

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

>><<已作为流函数重载,例如:

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

(及其他)

因此(在本例中)当使用 cout <<10 时,它会调用将打印值的重载函数。

与位移无关,只是它使用相同的运算符"<<"和">>"。

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