0

我知道在 中std::ostream,我可以streambuf通过在构造函数中这样声明来使用自定义:

std::ofstream temp;
temp.open("file.txt", std::ios_base::in);
std::ostream example(temp.rdbuf());

以及之后设置它(与以前相同的前两行,但将最后一行更改为:

std::ostream example;
example.rdbuf(temp.rdbuf());

我的问题是:我怎样才能做到这一点std::ofstream?我希望能够覆盖方法xsgetn并在我自己的自定义类中xsputn实现并在我的.std::streambufofstreamofstream

4

1 回答 1

0

具体的文件流类有自己的rdbuf()方法,它接受 0 个参数,它隐藏rdbuf()了从虚拟基础继承的其他方法std::basic_ios。限定名称以查找基类方法应该有效:

std::ofstream ofs;
ofs.basic_ios<char>::rdbuf(example.rdbuf());
于 2015-06-10T15:34:28.540 回答