[英]is it possible to override ifstream::read, ifstream::open methods without deriving child class from ifstream ?? if possible how?
std::ifstream in;
in.**open**("file path",std::ifstream::in );
in.**read**((char *)&array[0],size);
我想覆盖打开和读取,以便它不会执行任何文件操作,并且我可以编写自己的打开和读取功能。
您不能在没有派生新类的情况下覆盖方法。 而且,您只能覆盖虚拟方法。 但是std::ifstream::open()
和std::ifstream::read()
不是虚拟的。
要执行所需的操作,您需要从std::basic_streambuf
派生一个新类,并实现所需的功能(或缺少该功能),然后将该类的实例提供给std::ifstream
(或者更好的是std::istream
直接)通过其rdbuf()
方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.