关于类basic_ostream的构造函数被申明成protected
basic_ostream有两个构造函数:
public:
explicit
basic_ostream(__streambuf_type* __sb)
{ this->init(__sb); }
protected:
basic_ostream(){this->init(0);}
在自己的类Trace中申明了
streambuf *streamBuffer_;
Trace::Trace(const ostream &out):
streamBuffer_(out.rdbuf())
{}
Trace trace(cout);
编译的时候报错了:
/usr/lib/gcc/i686-redhat-linux/4.4.6/../../../../include/c++/4.4.6/ostream: In constructor 'Trace::Trace(const std::ostream&)':
/usr/lib/gcc/i686-redhat-linux/4.4.6/../../../../include/c++/4.4.6/ostream:361: error: 'std::basic_ostream<_CharT, _Traits>::basic_ostream() [with _CharT = char, _Traits = std::char_traits<char>]' is protected
不懂怎么解决了,Trace的构造函数该怎么样申明?
非常感谢您的帮助!
[最优解释]
代码全一点看看。
不像是构造的问题,是否什么地方直接在对象上呼叫构造函数哦
[其他解释]