Frage

Ich habe versucht, mein Programm zu kompilieren, mit Code :: Blocks (gcc-Compiler). Und ich erhalte eine Fehlermeldung: Hier ist die Quelldatei sie beschweren sich über:

#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

Es beschwert sich über die 16. Zeile „mehrere Arten in einer Erklärung“, und es macht mich verrückt. Ich googeln viel, aber die gemeinsame Lösung ist „das fehlende Semikolon finden“. Und das Problem ist, dass es überhaupt keine fehlenden Semikolon ist. Es zeigen sich immer auf die 16. Zeile (zumindest nach der Schutz), selbst wenn es einen Kommentar oder sogar ist es jenseits der EOF (wenn ich alle Felder entfernen, um die Datei klein werden).

(Dieses Problem kann trivial sein, und ich kann jetzt müde sein, also muß ich einen Schlaf. Und ich hoffe, dass jemand mir morgen früh einige Ratschläge gegeben werden.)

War es hilfreich?

Lösung

Haben Sie eine Klasse oder eine andere UDT namens Status? Was passiert, wenn Sie den Namen des Elements ändern Status_?

Andere Tipps

Ist „Status“ ein Makro oder anderweitig deklariert / definiert in einem der Sammler (oder was auch immer sie sind)?

Ich bin ein Narr ...

Code :: Blocks manchmal nicht die Quelldatei nicht speichern, bevor Anfang der Datei zu kompilieren. MSVC ++ es immer speichern, bevor kompilieren. Das war das eigentliche Problem.

es scheint, dass es eine Status-Makro irgendwo im Code war. Aber es war nicht meine eigene Art. Wahrscheinlich ein Makro aus einem wxwidgets Header ...

Die Datei, die Sie uns gezeigt haben, ist eine Header Datei. Das Problem, das Sie ist auf der 16. Zeile von einigen source Datei, die diesen Header #includeing. Können Sie kopieren + die fügen Sie genau Fehlermeldung die Sie erhalten, sowie den entsprechenden Teil des in der Fehlermeldung verwiesen Datei?

Es gibt ein Semikolon fehlt in der letzten zurück Klassendeklaration, nicht derjenige es über beschwert. Der Fehler ist wahrscheinlich in "timer.h", aber vielleicht in "player.h"

Fehler vorwärts Erklärung wegen der 2. Klasse sein können, vor dem ersten Klassendefinition ist nicht erforderlich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top