GIVEN :
Класс MyStream
, производный от std::basic_istream<>
, содержит указатель subject
на std::basic_istream<>
объект.Он должен ответить на tellg()
и read()
с измененным содержанием из соответствующих ответов subject
.
template <class T> MyStream :
public std::basic_istream<typename T::char_type, typename T::traits_type> {
std::basic::istream<...>* subject;
...
};
ПРОБЛЕМА : Функции tellg()
, seekg()
и read()
, а также функции флагов состояния не являются виртуальными.
ВОПРОС : Как MyStream
объект может передавать, искать и читать субъекту, пересылать ответ вызывающей стороне и изменять флаги состояния так, чтобы они соответствовали флагам subject
?