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

how cout object's streambuf is initialized?

本文关键字:初始化 对象 streambuf cout      更新时间:2023-10-16

我知道cout被声明为

这只是一个外部声明,那么cout在哪里定义呢?如何初始化cout的streambuf以及如何将其与标准输出相关联?

ostream类有一个以streambuf指针作为参数的构造函数。所以我的理解是某个地方的cout必须被实例化为上ostream cout (streambufPtr);我在哪里可以找到这个

谢谢。

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

这与组成标准库的代码没有什么不同——当您需要声明时,定义(实现它们的代码)不必对您可见。

因此,cout及其同类很可能存储在c++运行时/启动库的某个地方,以及在允许代码运行之前将其附加到标准输出的代码。