cin和cout对象的生命周期是什么? C ++

时间:2017-10-11 14:40:36

标签: c++ stream

在C ++中cincout通常用于读取/写入标准I / O的内容。它们都用作运算符<<>>的操作数。换句话说,只要我们想要所述功能,它们就是对象

由于cincout对象,因此在程序的生命周期中创建/初始化它们时,我们可以在{{1}的任何位置使用它们库是导入的吗?

1 个答案:

答案 0 :(得分:7)

  

[iostream.objects.overview] / 2 构造对象并在第一次构建类ios_base::Init的对象之前或期间的某个时间建立关联,并且在任何情况下,在主体开始执行之前。 294 在程序执行期间不会销毁对象。 295 在翻译单元中包含<iostream>的结果应该好像<iostream>定义了具有静态存储持续时间的ios_base::Init实例。同样,整个程序的行为应该至少有一个具有静态存储持续时间的ios_base::Init实例。

     

294 如果他们可以这样做,鼓励实现早于所需的时间初始化对象。

     

295 静态对象的构造函数和析构函数可以访问这些对象以从stdin读取输入或将输出写入stdoutstderr

另请参阅:Nifty counter