Я не вижу проблемы с вашей функцией извлечения, но у меня нет смысла выводить из ifstream.
Цель наследования от класса состоит в том, чтобы переопределить его виртуальные методы так, чтобы, когда кто-то передаетistream & или ifstream & в функцию (обычно оператор >>), которую вызывается ваше переопределение.
В отличие от коллекций STL, потоки используют иерархию и v-таблицы, но новички, как правило, неправильно понимают эту концепцию.
Например, если вы хотите изменить тип буфера, который он использует, вы бы унаследовали от basic_streambuf и использовали бы простой объект istream или ostream с вашим приложением streambuf. * 1007 *
Изменение способа печати или чтения объектов не является чем-товы можете сделать это путем извлечения нового класса из iostream или streambuf, и при этом вы не можете расширять iomanips, вы должны использовать классы-обертки вокруг потоковых объектов.