Вы не можете переопределить методы без создания новых классов.И вы можете только переопределить виртуальные методы.Но std::ifstream::open()
и std::ifstream::read()
не являются виртуальными.
Чтобы сделать то, что вы хотите, вам нужно извлечь новый класс из std::basic_streambuf
и реализовать желаемую функциональность (или ее отсутствие), а затем датьэкземпляр этого класса к std::ifstream
(или лучше, std::istream
напрямую) с помощью его метода rdbuf()
.