c – 错误C2143:缺少’;’在’*’之前

c – 错误C2143:缺少’;’在’*’之前,第1张

概述你好我在互联网上到处寻找答案,但我找不到任何答案. 码: #ifndef GAME_H#define GAME_H#include "drawEngine.h"#include "sprite.h"#include <iostream>using namespace std;class Game{public: bool run(void);protected: 你好我在互联网上到处寻找答案,但我找不到任何答案.

码:

#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:缺少’;’在’*’之前所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1240723.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存