この循環依存の問題を解決できません。常にこのエラーが発生します:「不完全な型構造体 GemsGame の無効な使用」 gemsgame.h を含めたにもかかわらず、コンパイラが GemsGame の宣言を認識しない理由がわかりません 両方のクラスは互いに依存しています (GemsGame は GemElements のベクトルを格納します) 、および GemElements はこの同じベクトルにアクセスする必要があります)
GEMELEMENT.H の部分的なコードは次のとおりです。
#ifndef GEMELEMENT_H_INCLUDED
#define GEMELEMENT_H_INCLUDED
#include "GemsGame.h"
class GemsGame;
class GemElement {
private:
GemsGame* _gemsGame;
public:
GemElement{
_gemsGame = application.getCurrentGame();
_gemsGame->getGemsVector();
}
};
#endif // GEMELEMENT_H_INCLUDED
...そして GEMSGAME.H:
#ifndef GEMSGAME_H_INCLUDED
#define GEMSGAME_H_INCLUDED
#include "GemElement.h"
class GemsGame {
private:
vector< vector<GemElement*> > _gemsVector;
public:
GemsGame() {
...
}
vector< vector<GemElement*> > getGemsVector() {
return _gemsVector;
}
}
#endif // GEMSGAME_H_INCLUDED