题
我试图汇编的我的程序,用代码::块(海湾合作委员会编译器).我会得到一个错误:这里是源文件,它抱怨关于:
#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类前向声明是不需要之前,第一类定义。
不隶属于 StackOverflow