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

Declaring any iostream related object in header throws error upon attempt to initialize

本文关键字:初始化 错误 对象 声明 任何 iostream      更新时间:2023-10-16

我已经声明了两个

class myclass
{
private:
  stringbuf* mbuf;
  iostream* mios;
};

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

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

它抛出的错误如下:

invalid use of incomplete type 'std::stringbuf'

然后当然,iostream抱怨无法使用Stringbuf

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