相同类型的对象如何执行不同的操作
How the same type of objects cout, cerr, clog perform differently?
extern ostream cout;
extern ostream cerr;
extern ostream clog;
cout,cerr和clog被声明为ostream的类型。但是cout和堵塞有缓冲,但cerr没有。
为什么相同类型的对象行为不同?
这三个对象具有相同的类型,但它们不是同一个实例。ostream
的实例可以以不同的方式配置;在这种情况下,这三个对象配置为以特定方式处理每个对象的缓冲。这是有道理的:如果同一类的所有对象都以完全相同的方式运行,那么首先就没有理由使它们成为单独的对象。
构造函数采用streambuf
选项
explicit ostream (streambuf * sb);
我猜它们中的每一个都使用不同的streambuf
输出,这些streambuf
对象控制输出的缓冲方式(或不缓冲)。
相关文章:
- 按下Arduino按钮后,如何在C#应用程序上执行操作
- 是否可以访问类数据成员并在析构函数中对它们执行操作?
- 如何让派生类在调用基类之前执行操作?
- CListCtrl 根据选定的行值执行操作
- 在服务器上执行操作的正确和 REST 方式?
- 是否可以拦截/检测关闭 PC 并首先执行操作的请求?
- 如何有效地使用 std::async 对指针数组执行操作
- 无法对套接字执行操作,因为系统缺少足够的缓冲区空间或队列已满
- 递归推动POP POSTFIX计算器无法正确执行操作,只需将最后一个数字作为结果
- QListWidgetItem 当按钮单击时执行操作
- 为什么C++没有简洁的语法允许在不定义计数器的情况下多次执行操作?
- 如何在标准库C/C++函数中进行gdb单步执行操作
- 如何对 n 个字符串执行操作,然后在C++中打印它们
- 从文件中读取运算符并执行操作C++
- 使用重载运算符在函数调用时执行操作
- 您如何选择在opencv-dnn上执行操作的设备
- 如何使用BoostSpirit.Qi增量解析(并对其执行操作)大文件
- 在remove_if删除元素之前,我可以滥用谓词对元素执行操作吗
- 在使用Qt修改任何复选框状态时执行操作
- 是否可以在不使用任何头文件的情况下在C++中执行I/O操作