当前位置: 技术问答>linux和unix
关于类basic_ostream的构造函数被申明成protected
来源: 互联网 发布时间:2017-03-23
本文导语: basic_ostream有两个构造函数: public: explicit basic_ostream(__streambuf_type* __sb) { this->init(__sb); } protected: basic_ostream(){this->init(0);} 在自己的类Trace中申明了 streambuf *streamBuffer_; Trace...
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::basic_ostream() [with _CharT = char, _Traits = std::char_traits]' is protected
不懂怎么解决了,Trace的构造函数该怎么样申明?
非常感谢您的帮助!
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::basic_ostream() [with _CharT = char, _Traits = std::char_traits]' is protected
不懂怎么解决了,Trace的构造函数该怎么样申明?
非常感谢您的帮助!
|
代码全一点看看。
不像是构造的问题,是否什么地方直接在对象上呼叫构造函数哦
不像是构造的问题,是否什么地方直接在对象上呼叫构造函数哦
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。