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



在C++中,cincout通常用于读取/写入标准I/O。它们都用作运算符<<>>的操作数。换句话说,它们是对象,我们可以随时使用这些功能。

由于cincout对象,在程序的生命周期中,它们是何时创建/初始化的,以便我们可以在导入<iostream>库的任何位置使用它们?

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

294如果它们可以这样做,则鼓励实现提前初始化对象。

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

另请参阅:Nifty计数器

最新更新