C ++ скопировать объект потока

Я экспериментировал с C ++ и столкнулся с проблемой, которую не знаю, как решить.

По сути, я обнаружил, что вы не можете копировать потоки (см.Почему копирование потока строк не допускается?), и это также относится к объектам, которые их «обертывают». Например:

Я создаю класс с членом данных типа stringstream.Я создаю объект этого класса.Я пытаюсь скопировать объект, например "TestObj t1; TestObj t2; t1 = t2;"

Это вызывает ошибку C2249:

'std :: basic_ios <_Elem, _Traits> :: operator =': не объявлен доступный путь к приватному члену в виртуальной базе 'std :: basic_ios <_Elem, _Traits>'

Итак, мой вопрос: как я могу (желательнобез труда) копировать объекты, которые имеют члены данных типа * stream?

Полный пример кода:

#include <iostream>
#include <string>
#include <sstream>

class TestStream
{
public:
    std::stringstream str;
};

int main()
{
    TestStream test;
    TestStream test2;
    test = test2;

    system("pause");
    return 0;
}

Заранее спасибо.

ОБНОВИТЬ

Мне удалось решить эту проблему благодаря ответам ниже. Что я сделал, так это объявил объекты потока один раз, а затем просто ссылался на них, используя указатели в объектах-обертках (например, TestStream). То же самое касается всех других объектов, которые имеют частные конструкторы копирования.