ifstreamofstream用于文件中的输入和输出,并且fstream可以完成它们的任务,但不能从ifstreamofstream继承,这是代码重复还是其他?

c++ - 为什么fstream不从c++中的ifstream和ofstream继承?-LMLPHP

最佳答案

您必须向作者Bjarne Stroustrup提出确切的答案。在1985年的USENIX session 论文集上发表的有关iostream的原始论文中,他似乎非常强调效率:



因此,这可能是原因。

我猜您可以将通用文件I/O功能提取到mixin中,但这需要virtual继承才能实现菱形继承,这将在访问底层basic_filebuf时增加额外的间接访问。

另外,由于打开文件后通常无法更改文件的读/写模式,因此,将fstream转换为ifstreamofstream会产生不一致之处,因为您会得到可写的ifstream或可读的ofstream

关于c++ - 为什么fstream不从c++中的ifstream和ofstream继承?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50817784/

10-13 08:24