2

私は両方を宣言しました

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

私のクラスの .h ヘッダーファイルで。ただし、コンストラクターでそれらを次のように初期化しようとすると:

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

}

次の行に沿ってエラーをスローします。

invalid use of incomplete type 'std::stringbuf'

そしてもちろん、iostreamはstringbufを使用できないと不平を言います

4

1 に答える 1

7

適切なヘッダー、つまり<sstream>forstringbuf<iostream>forを含めましたiostreamか?

于 2012-06-10T20:50:46.613 に答える