std :: cout如何工作

Swa*_*ari 3 c++ cout

可能重复:
cout中的cout << cout和cout <<和cout有什么区别?

我意外地发现:

cout << cout;
Run Code Online (Sandbox Code Playgroud)

输出是一些地址.这个地址是什么意思,为什么会显示出来?
我在看这个问题.

谢谢

Luc*_*ore 10

因为ostream重载operator void*(),并且这是调用的关闭匹配,所以会打印转换operator <<的结果(void*)cout.在你的情况下是哪个地址.请记住,这cout是一个对象.

基本上这个电话转换为:

cout.operator<<((void*)cout);
Run Code Online (Sandbox Code Playgroud)

  • 使用C++中的@Pooya,您可以重载运算符以方便输入.研究这个主题,在评论中解释得太多了. (2认同)
  • @Pooya,在C中,它被严格地用于此,在C++中,它变得像输入和输出流一样被重载.当它像这样使用时,它不再与位移有任何关系.你可以使`operator +`做减法,但不同的是,在这里,他们已经在上下文中钻了它,而我的例子是荒谬的. (2认同)