C ++ Rundschreiben enthalten

Ich kann dieses zirkuläre Abhängigkeitsproblem nicht lösen. Es wird immer der folgende Fehler angezeigt: "Ungültige Verwendung des unvollständigen Typs struct GemsGame". Ich weiß nicht, warum der Compiler die Deklaration von GemsGame nicht kennt, auch wenn ich gemsgame.h einbezogen habe. Beide Klassen hängen voneinander ab (GemsGame speichert einen Vektor von GemElements , und GemElements müssen auf denselben Vektor zugreifen)

Hier ist ein Teil des Codes von 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

... und von 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

Antworten auf die Frage(4)

Ihre Antwort auf die Frage