重複の可能性:
エラー: '{' トークンの前にクラス名が必要です
1 つのメイン スーパークラス GameObject と派生クラス GuiBitMapFont があります。予期されるクラス名エラーが常にスローされます。しかし、GuiBitMapFont class GameObject;に前方派生を追加するとします。不完全なタイプ 'class GameObject' の無効な使用と 'class GameObject' の前方宣言をスローします。
編集 はい、GameObject ファイルに #include GuiBitMapFont がありました。しかし、それはこの質問を書いているときの私の間違いでした。コンパイラはこれら 2 つのエラーをスローします。
#ifndef GAMEOBJECT_H
#define GAMEOBJECT_H
#include <string>
#include "Texture.h"
class GameObject {
private:
int x;
int y;
int width;
int height;
public:
GameObject();
GameObject(int x, int y, int width, int height);
GameObject(const GameObject& orig);
virtual ~GameObject();
virtual void draw();
virtual void update();
//ignore those, i need to rewrite it....
void setX(int x);
void setY(int y);
void setWidth(int width);
void setHeight(int height);
int getX() const;
int getY() const;
int getWidth() const;
int getHeight() const;
};
#endif /* GAMEOBJECT_H */
と派生
#ifndef GUIBITMAPTEXT_H
#define GUIBITMAPTEXT_H
#include <string>
#include "SDL.h"
#include "GameObject.h"
#include "BMF.h"
class GuiBitMapText : public GameObject { //error: expected class-name before '{' token
private:
std::string text;
BMF *font;
//SDL_Surface *surf;
SDL_Texture *texture;
public:
GuiBitMapText(int x, int y, std::string text, BMF *font);
GuiBitMapText(const GuiBitMapText& orig);
virtual ~GuiBitMapText();
virtual void draw();
virtual void update();
};
#endif /* GUIBITMAPTEXT_H */