Ну вообщем цель такова, чтобы в функцию можно было передать либо обьект моего класса, либо же 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);
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники