码:
#ifndef GAME_H#define GAME_H#include "drawEngine.h"#include "sprite.h"#include <iostream>using namespace std;class Game{public: bool run(voID);protected: bool getinput(char *c); voID timerUpdate(voID);private: Sprite* player; // this gives me C2143 double frameCount; double startTime; double lastTime; int posx; //int posy; DrawEngine drawArea;};#endif
我该如何解决?
sprite.h
#ifndef GAME_H#define GAME_H#include "drawEngine.h"#include "game.h"enum{ SPRITE_CLASSID,};struct vector{ float x; float y;};class Sprite{public: Sprite(DrawEngine *de,int s_index,float x = 1,float y = 1,int i_lives = 1); ~Sprite(); vector getposition(voID); float getX(voID); float getY(voID); virtual voID addlives(int num = 1); int getlives(voID); bool isAlive(voID); virtual bool move(float x,float y);protected: DrawEngine *drawArea; vector pos; int spriteIndex; int numlives; int classID; vector facingDirection; voID draw(float x,float y); voID erase(float x,float y);private:};#endif解决方法 在这种情况下的问题似乎是Sprite不被识别为类型.更好看后,你遇到的问题是你定义:
#ifndef GAME_H#define GAME_H//...#endif
在两个文件中.你可以在.cpp文件(或Game.h文件……第一个代码片段)中执行此 *** 作,也可以在Sprite.h文件中执行此 *** 作.问题是,在编译器进入Sprite.h时,GAME_H已经定义,因此,由于#ifndef例程,它不再编译Sprite.h文件.
要解决它在Sprite.h文件中的更改,如下所示:
#ifndef SPRITE_H#define SPRITE_H//...#endif总结
以上是内存溢出为你收集整理的c – 错误C2143:缺少’;’在’*’之前全部内容,希望文章能够帮你解决c – 错误C2143:缺少’;’在’*’之前所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)