int main()
{
std::stringstream s1("This is my string.");
std::stringstream s2 = s1; // error, copying not allowed
}
Run Code Online (Sandbox Code Playgroud)
我找不到为什么我不能复制stringstream的原因.你能提供一些参考吗?
我一直在尝试使用C++,我遇到了一个我不知道如何解决的问题.
基本上,我发现你不能复制流(请参阅为什么不允许复制stringstream?),这也适用于"包装"它们的对象.例如:
这导致错误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;
}
Run Code Online (Sandbox Code Playgroud)
提前致谢.
UPDATE
感谢下面的答案,我设法解决了这个问题.我所做的是声明流对象一次,然后使用包装器对象中的指针(例如,TestStream)简单地引用它们.具有私有拷贝构造函数的所有其他对象也是如此.