我在某处看到了下面的代码片段。
#include <iostream>
int main()
{
std::ostream& os = std::cout;
os << "thanks a lot" << std::endl;
return 0;
}
由于上述代码片段运行良好,因此表明它std::cout
源自std::ostream
. 但我还找不到任何直接参考。
根据文件,它说[强调我的]:
全局对象 std::cout 和 std::wcout控制输出到与标准 C 输出流 stdout 相关联的实现定义类型(派生自 std::streambuf)的流缓冲区。
上面的引文说,std::cout
控制输出到一个派生自std::streambuf
而不是std::cout
派生自的类型std::streambuf
。
而且我只std::cout
在一个名为的文件中找到声明/usr/include/c++/7/iostream
:
extern ostream cout; /// Linked to standard output
我找不到std::cout
.
ostream
是一类。cout
是该类的一个实例。
这与class Person {}; Person john;
. Person
是类,john
是该类的一个实例。C++ 标准库恰好提前创建了cout
这个特定类 ( ostream
) 的实例 ( ),配置为写入标准输出流。
该行std::ostream& os = std::cout;
定义了一个名为 的新变量os
,它的类型是ostream&
,它是对 的引用ostream
。然后它使其成为对已定义变量的引用cout
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句