“cout << cout” - 输出代表什么?

9

在写了一整天的代码后,我不小心写错了:

cout << "some text" << cout;

取代

cout << "some text" << endl;

现在它打印出了一个内存地址。它指向什么?

1个回答

8

std::coutstd::ostream 的一个实例,在 C++11 之前,它有一个转换运算符到 void*。看起来你的代码正在触发该转换,给你 std::cout 对象的地址。


@remyabel 我之前以为 void* 运算符在 C++11 中已经被移除了。这就是链接引用中的建议,但我稍后会在标准中进行核实。 - juanchopanza
1
能否请您再解释得更清楚一些?operator bool() 运算符在哪里使用?抱歉,我还没有完全理解。 - user2664856
@juan 老实说,这个评论也没有让事情更加清晰 :-) - user2664856
@juanchopanza 你是对的。看起来libstdc++落后了。 - user3920237
好的....看起来我确实需要睡一会儿。抱歉,我现在明白了。谢谢 :) - user2664856
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接