誰でもこのファイルをコンパイルすると "Block.h:20:error:複数の型が1つの宣言になる"というエラーメッセージが表示されます。この問題を解決するものは何もなく、私はかなり不満を感じています。C++の "複数の型の1つの宣言"エラーの発生
Displayable.h
#include <X11/Xlib.h>
#include <X11/Xutil.h>
// Information to draw on the window.
struct XInfo
{
Display *display;
Window window;
GC gc;
};
// An abstract class representing displayable things.
class Displayable
{
public:
virtual void paint(XInfo &xinfo) = 0;
};
Sprite.h
#include "Displayable.h"
enum Collision {
NO_COLLISION = 0,
TOP_COLLISION,
RIGHT_COLLISION,
BOTTOM_COLLISION,
LEFT_COLLISION
};
class Sprite : public Displayable {
public:
int x, y, width, height;
Sprite();
virtual void paint(XInfo &xinfo) = 0;
Collision didCollide(Sprite *s);
};
Block.h
#include "Sprite.h"
class Block : public Sprite {
public:
virtual void paint(XInfo &xinfo);
Block(int x, int y, int width, int height);
}; <-- **This is line 20**
どれが 'Block.h 'ですか? – templatetypedef
最後のもの(Blockクラスを含むもの)。 –
エラーが20行目にあり、上記のいずれにも20行ありません。 – LostInTheCode