C++ 错误:‘;std::ios_base::ios_base(const std::ios_base&;)和#x2019;是私人的

C++ 错误:‘;std::ios_base::ios_base(const std::ios_base&;)和#x2019;是私人的,c++,stream,C++,Stream,我在谷歌上搜索,发现这是因为复制了流。据我所知,在这段代码中并没有复制流 error: ‘std::ios_base::ios_base(const std::ios_base&)’ is private 你们能帮帮我吗。 提前谢谢 error: ‘std::ios_base::ios_base(const std::ios_base&)’ is private ~ error: ‘std::ios_base::ios_base(const std::ios_base&

我在谷歌上搜索,发现这是因为复制了流。据我所知,在这段代码中并没有复制流

error: ‘std::ios_base::ios_base(const std::ios_base&)’ is private
你们能帮帮我吗。 提前谢谢

error: ‘std::ios_base::ios_base(const std::ios_base&)’ is private
~

error: ‘std::ios_base::ios_base(const std::ios_base&)’ is private
尝试按值返回
记录器
,这需要复制构造函数。编译器生成的复制构造函数尝试复制成员
debug
。这就是为什么会出现错误

error: ‘std::ios_base::ios_base(const std::ios_base&)’ is private
您可以实现复制构造函数(可能没有意义,因为
debug
成员可能不同),也可以通过引用返回:

error: ‘std::ios_base::ios_base(const std::ios_base&)’ is private
static Logger getLogger()
{
   return log;
}
在这种情况下,这是安全的,因为
日志
具有静态存储持续时间

error: ‘std::ios_base::ios_base(const std::ios_base&)’ is private
正确的呼叫如下所示:

error: ‘std::ios_base::ios_base(const std::ios_base&)’ is private
static Logger& getLogger()
{
   return log;
}
在这种情况下,
l
指的是
Logger::log

error: ‘std::ios_base::ios_base(const std::ios_base&)’ is private