Я пытаюсь создать небольшую игру на C ++, и у меня уже возникают проблемы с добавлением моего класса Player в мой класс Game. Я думал, что это проблема с круговой зависимостью, но предварительное объявление класса не помогло! Я искал везде и просто не мог понять этого, поэтому надеюсь понять, почему это не работает. Я включаю только заголовки, потому что все, что у меня есть в исходном коде на данный момент, - это определения моих конструкторов "
Game.h
#ifndef GAME_H_INCLUDED
#define GAME_H_INCLUDED
#include "Player.h"
//only one instance of a game should be running
//make singleton class
class Game {
private:
bool playing;
Player * Player = 0;
static Game * inst;
Game() {}
public:
Player * GetPlayer() { return Player; } //Getting a "Player does not name a type" error here???
void AddPlayer(int health, int mana, int strength) { Player = new Player(health, mana, strength)}
bool StillPlaying() { return playing; }
void EndGame() { playing = false; }
static Game * GetInstance();
void StartGame();
};
#endif // GAME_H_INCLUDED
Player.h
#ifndef PLAYER_H_INCLUDED
#define PLAYER_H_INCLUDED
#include "Subject.h"
class Player : public Subject {
protected:
int health;
int mana;
int strength;
public:
Player(int health, int mana, int strength);
int GetHealth() { return health; };
int GetMana() { return mana; }
int GetStrength() { return strength; }
void TakeDamage(int enemyStrength) { health -= enemyStrength; }
void Attack();
void Heal();
void Event();
};
#endif // PLAYER_H_INCLUDED
Ошибки обнаруживаются в файле Game.h, и в частности, в нем говорится, что «Player 'не называет тип» в функции GetPlayer (). I я действительно запутался, потому что не выдает мне ошибку, когда я объявляю переменную-член Player ??