Ну вообщем цель такова, чтобы в функцию можно было передать либо обьект моего класса, либо же cout , cin.
MyStream mout = MyStream();
MyStream min = MyStream();
...
static int UShowTFileList(ostream& out, istream& in);
...
UShowTFileList(cout, cin);
UShowTFileList(mout,min);
Очевидное решение не работает. Нет конструкторов.
class MyStream : public ostream, public istream {...}
...
MyStream mout = MyStream();
MyStream min = MyStream();
...
-->
Error (active) E1790 the default constructor of "MyStream" cannot be referenced -- it is a deleted function
Ну и все вызовы тоже.
mout << "Hello, world!" << "\n";
->
Error C2280 'MyStream::MyStream(const MyStream &)': attempting to reference a deleted function
Вообщем, как правильно унаследовать istream, ostream ? Исходник класса MyStream.h
Насколько я понимаю, всё что требуется от аргументов out
и in
функции UShowTFileList
--- чтобы у них были операторы <<
и >>
соответственно. Возможным решение может быть не наследование MyStream
от ostream
и istream
, а превращении функции UShowTFileList
в шаблонную:
template<typename Ostream, typename Istream>
static int UShowTFileList(Ostream &out, Istream &in);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Пытался написать функцию, которая делает то, что указано в заголовке:
ЗдравствуйтеИмеется вот такая иерархия: