出于教育目的,我想创建一个ostream和流缓冲区来做:
我尝试过载,但失败的可怕.我试着通过写入来重载
ostream& write( const char* s, streamsize n )
Run Code Online (Sandbox Code Playgroud)
在我的basic_stringstream2类中(我复制粘贴basic_stringstream到我的cpp文件并修改它)但代码保持使用basic_ostream.我查看了代码,看起来我需要重载xsputn(这个页面上没有提到http://www.cplusplus.com/reference/iostream/ostream)但是我还需要重载多少?以及如何构建我的类(它需要继承什么等)?
Luc*_*tte 24
规范方法包括定义自己的streambuf.你应该看看:
对于A + C)我认为你应该看一下facets,它们会修改对象作为字符的写法.您可以在此处存储统计信息以及流式传输对象的次数.看看如何在使用STL流时格式化我自己的对象?举个例子.
对于B)您需要创建自己的streambuf并将您的ostream连接到该缓冲区(构造函数参数).查看Luc的链接 +获取新的streambuf类.总之,你需要为ostream(最小)实现这个: