我试图汇编的我的程序,用代码::块(海湾合作委员会编译器).我会得到一个错误:这里是源文件,它抱怨关于:

#ifndef BOT_H
#define BOT_H

#include "player.h"
#include "timer.h"

class BOTS; // forward decalaration of BOTS

class BOT : public PLAYER
{
public:
    enum BotStatus{BotMoving,BotPursue,BotChasePowerup};
    enum BotMovDir{Up,Down,Left,Right,Forward,Backward};
    enum BotSkill{Easy,Normal,Hard,Expert,Insane};
protected:
    BotStatus Status;  // this is the line it complaining about
    BotMovDir CurrentMov;
    TIMER CTimer;
    bool Stucked;
    BotSkill Skill;
    VECTOR3D AimTarget;
//  VECTOR3D ShotTarget;
    PLAYER *PursueObj;
    bool SameLevel;
    BOTS *Owner;
    bool PlayerHitMe;
    void OnDamage(double dmg,const wchar_t *Shooter,bool s);
    void OnReset();
public:
    BOT(BOTS *o,const wchar_t *botname) : PLAYER(botname), PlayerHitMe(false), Status(BotMoving), Skill(Easy), Owner(o)
    {
        PlayerInit();
    }
    void SetSkill(BotSkill bs) {Skill=bs;}
    void BotControl();
    void SetSameLevel(bool s) {SameLevel=s;}
    virtual ~BOT() {}
};

#endif

它抱怨关于第16线"多种类型中的一种宣言",这是驾驶我的疯狂。我用google搜索了很多,但共同的解决方案是"寻找失踪的分号".而问题是,有没有丢失的分号。这总是点到16线(至少是之后的保护),即使有评论或者即使它超出了eof(当我消除所有领域,使该文件成为小)。

(这个问题可能是微不足道我可是累了,所以现在我必须有一个睡眠。我希望会有人给了我一些建议明天的明天。)

有帮助吗?

解决方案

您是否有一个名为 Status 的类或其他UDT?如果您将成员的名称更改为 Status _

,该怎么办?

其他提示

是否是< Status &quot;一个宏或以其他方式声明/定义其中一个标题(或其中包含的内容)?

我是个傻瓜......

Code :: Blocks有时在开始编译文件之前不保存源文件。 MSVC ++总是在编译之前保存它。这才是真正的问题。

似乎代码中的某处有一个Status宏。但这不是我自己的类型。可能是来自wxwidgets标题的宏......

您向我们展示的文件是标头文件。您遇到的问题是在 source 文件的第16行,该文件是 #include 。您可以复制+粘贴您收到的完全错误消息,以及错误消息中引用的文件的相关部分吗?

最后一个上一个类声明中缺少一个分号,而不是它抱怨的那个。该错误可能在“timer.h”中,但可能在“player.h”

错误可能是因为第2类前向声明是不需要之前,第一类定义。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top