我应该避免继承std :: iostream吗?

时间:2013-11-19 19:52:16

标签: c++ inheritance iostream

我正在编写一个可以读/写特定格式文本文件的类。我考虑过继承std::iostream,但在搜索Google时,我发现了一些我不应该从std::iostream继承的意见/建议。

是否有理由避免直接从std::iostream继承?我应该继承一些更低级别的东西,比如std::basic_iostream吗?

1 个答案:

答案 0 :(得分:2)

iostream采用各种格式的数据,并将其转换为发送到流缓冲区的字节流。通过调用关联语言环境中的格式化函数(例如,决定数字是否应表示为1.234,561,234.561234.56是否为> 到当地)。

根据区域设置格式化数据后,将其写入流缓冲区。流缓冲区将格式化数据转换为适合外部文件的格式(例如,处理UTF-8与UTF-16与ISO-8859的对比)。

因此,您几乎不可能想要更改iostream来更改格式。如果要更改单个项目的格式,可以通过更改区域设置来实现。如果要更改结果转换为外部文件格式的方式,则需要更改文件缓冲区。