2

独自のファイルに GameState というクラスがあり、そのクラスには、独自のファイルにある StatusView タイプの別のオブジェクトへのポインターがあります。GameState.h に StatusView ヘッダーを含めましたが、コンパイルしようとすると次のエラーが発生します。

missing type specifier - int assumed

しかし、StatusView を含めた後でも前方宣言すると、コンパイルできます。クラスを前方宣言する必要がある原因は何なのかわかりません。

4

1 に答える 1

6

ヘッダー間に循環依存関係があります。AにはBが含まれ、BにはAが含まれますが、Aについてはすでに評価されているため、Bには実際にはAが含まれていませ#pragma onceん(標準のヘッダーガードでも同じです)。

内部包含は無視されるため、まったく存在しなかったかのようになり、前方宣言が必要になります。

于 2012-05-11T02:56:11.917 に答える