类没有命名C++代码中的类型错误
Class does not name a type error in C++ Code
我正在尝试用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文件中,特别是它说"玩家"没有命名类型";在GetPlayer((函数上。我真的很困惑,因为当我声明Player成员变量时,并没有给我一个错误??
您有一个类Player
和一个名为Player
的Game
成员。一旦遇到成员声明,Game
类中对Player
的所有引用都将指向成员变量,而不是全局类型。
有一些方法可以解决这个问题(例如,::Player *GetPlayer
(,但最好和最不令人困惑的解决方案是将成员变量或类型重命名为具有不同的名称。
相关文章:
- 类没有命名C++代码中的类型错误
- 不完整类型错误(E0409、E0070、E0515)
- 使用具有结构不完整类型错误的模板
- 不命名构造函数和析构函数上的类型错误
- 返回派生类型时出现协变类型错误
- 为什么此构造函数没有给出不完整的类型错误?
- 定义模板化结构的特征时出现不完整的类型错误
- 使用重载构造函数时出现不完整的类型错误
- 为什么我得到表达式必须有类类型错误?
- 输出 [left]=input[i] 行中的 c++ 代码中存在无效的类型错误
- 枚举成员不是类型错误
- 如何修复"ctypes"。参数错误:参数 2:<键入"异常.类型错误">:RaspberryPi 中的错误类型"错误
- 外部 "C" Visual Studio 2015 中的显式类型错误,DLL 测试代码
- 非默认析构函数会导致不完整的类型错误
- 为什么按引用传入会导致绑定引用类型错误
- Objective-C C++ 包装器 类型错误的不完整定义
- 输入类型错误
- 当构造函数的参数类型错误时引发异常
- 命名空间中的'bad_cast' 'std' 未命名类型错误
- C UNWORKOWN类型错误