相关疑难解决方法(0)

`std::cout` 和 `std::ostream` 之间有什么关系?

我在某处看到了下面的代码片段

#include <iostream>


int main()
{
    std::ostream& os = std::cout;

    os << "thanks a lot" << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

由于上述代码片段运行良好,因此表明它std::cout源自std::ostream. 但我还找不到任何直接的参考。

根据文件,其中说[强调我的]:

全局对象 std::cout 和 std::wcout控制输出到实现定义类型(派生自 std::streambuf)的流缓冲区,与标准 C 输出流 stdout 关联。

上面的引用说控制输出到派生自其他std::cout类型而不是派生自 的类型。std::streambufstd::coutstd::streambuf

std::cout我只在名为 的文件中找到 的声明/usr/include/c++/7/iostream

  extern ostream cout;      /// Linked to standard output
Run Code Online (Sandbox Code Playgroud)

我找不到 的实现std::cout

c++ c++11

-1
推荐指数
1
解决办法
2419
查看次数

标签 统计

c++ ×1

c++11 ×1