C ++ copia um objeto de fluxo

Estou experimentando C ++ e me deparei com um problema que não sei resolver.

Basicamente, descobri que você não pode copiar fluxos (consultePor que copiar strings não é permitido?), e isso também se aplica a objetos que os 'envolvem'. Por exemplo

Crio uma classe com um membro de dados do tipo stringstrea Crio um objeto desta classTento copiar o objeto, por exemplo "TestObj t1; TestObj t2; t1 = t2;"

Isso causa o erro C2249:

'std :: basic_ios <_Elem, _Traits> :: operator =': nenhum caminho acessível para membro privado declarado na base virtual 'std :: basic_ios <_Elem, _Traits>'

Então minha pergunta é: como posso (de preferênciafacilment) copiar objetos que possuem membros de dados do tipo * stream?

Código de exemplo completo:

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

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

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

    system("pause");
    return 0;
}

Desde já, obrigado

ATUALIZA

Consegui resolver este problema, graças às respostas abaixo. O que fiz foi declarar os objetos de fluxo uma vez e simplesmente referenciá-los usando ponteiros nos objetos do invólucro (por exemplo, TestStream). O mesmo vale para todos os outros objetos que possuem construtores de cópia particulare