例如:
int age;
cin >> age;
cout << "You are " << age << " years old!" << endl;
我们为什么要在这里使用"<<"和">>"运算符?它们在做什么?我有点理解位移,但不知道它在这里是怎么工作的。
例如:
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时,它调用重载的函数来打印该值。
它与位移操作无关,只是使用相同的运算符“<<”和“>>”。
<<
调用。它看起来很简洁。 - Ates Goral
std::cout << "Hello world" << std::endl;
并附有解释。 - Sam Varshavchik