什么是<<运算符在C++中做什么?

Ros*_*oss 5 c++ iostream bit-shift

在下面的例子中,<<操作员究竟在做什么?我猜它不是一个按位运算符.

std::cout << "Mouse down @ " << event.getPos() << std::endl;
Run Code Online (Sandbox Code Playgroud)

我理解代码将在这里做什么:使用标准输出,发送此文本,发送行结束.只是我从来都不会使用这个<<除了原始二进制文件.

我开始使用C++.而且,作为各种类型的运营商,很难找到对此及其含义的描述.有人可以启发我和/或给我一个关于谷歌的指针吗?

谢谢罗斯

Car*_*icz 11

答案是:<<操作符默认为整数类型保留左移,但它可以重载以执行任何您想要的操作!

首先(我认为)在C++发明人Bjarne Stroustroup的同名书"C++编程语言"中演示了这种将字符串传递到流中的语法.就个人而言,我觉得重新定义一个运营商来做IO是噱头; 它使得看起来很酷的演示代码,但无助于使代码易于理解.作为一种技术的运算符重载在编程语言社区中受到广泛批评.


编辑:由于没有人提到这个:

operator<<ostream类中定义,其中cout是一个实例.类定义位于iostream库中,即#include"d as" <iostream>.