在C++中,cin
和cout
通常用于读取/写入标准I/O。它们都用作运算符<<
和>>
的操作数。换句话说,它们是对象,我们可以随时使用这些功能。
由于cin
和cout
是对象,在程序的生命周期中,它们是何时创建/初始化的,以便我们可以在导入<iostream>
库的任何位置使用它们?
[iostream.objects.overview]/2在第一次构造
ios_base::Init
类对象之前或期间的某个时间,以及在任何情况下主体开始执行之前,都会构造对象并建立关联294在程序执行过程中,对象不会被破坏295将<iostream>
包含在翻译单元中的结果应如同<iostream>
定义了具有静态存储持续时间的ios_base::Init
的实例。类似地,整个程序应表现为至少有一个具有静态存储持续时间的ios_base::Init
实例。294如果它们可以这样做,则鼓励实现提前初始化对象。
295静态对象的构造函数和析构函数可以访问这些对象以从
stdin
读取输入或将输出写入stdout
或stderr
。
另请参阅:Nifty计数器