cout对象的streambuf是如何初始化的?

时间:2013-04-26 00:26:26

标签: c++

我知道cout被宣布为 extern ostream cout;

这只是一个外部衰减,所以cout定义在哪里? 如何初始化cout的streambuf以及它如何与标准输出相关联?

ostream类有一个构造函数,它将streambuf指针作为参数。 所以我的理解是在某个地方必须将cout定为 ostream cout(streambufPtr);我在哪里找到这个?

感谢。

1 个答案:

答案 0 :(得分:0)

cout的实际声明是必需的,以便您可以使用它。它的定义不是。

这与构成标准库的代码没什么区别 - 当你需要声明时,你不需要看到定义(实现它们的代码)。

因此,cout及其兄弟很可能存储在某处的C ++运行时/启动库中,以及在允许代码运行之前将其附加到标准输出的代码。