2

我知道 cout 被声明为 extern ostream cout;

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

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

谢谢。

4

1 回答 1

0

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

这与构成标准库的代码之类的东西没有什么不同——虽然您需要声明,但定义(实现它们的代码)对您来说不是必须可见的。

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

于 2013-06-19T04:58:48.520 回答