在标头中声明任何与iostream相关的对象在尝试初始化时抛出错误

ale*_*ann 1 c++ iostream

我已宣布两个

class myclass
{
private:
  stringbuf* mbuf;
  iostream* mios;
};
Run Code Online (Sandbox Code Playgroud)

在我班的.h头文件中.但是,当我尝试在我的构造函数中初始化它们时,如下所示:

myclass::myclass()
{
  mbuf = new stringbuf();
  mios = new iostream(mbuf);

}
Run Code Online (Sandbox Code Playgroud)

它会抛出一个错误:

invalid use of incomplete type 'std::stringbuf'
Run Code Online (Sandbox Code Playgroud)

当然,iostream抱怨无法使用stringbuf

dir*_*tly 6

您是否包含适当的标题,即<sstream>for stringbuf<iostream>for iostream