Sjaak Diemen
Sjaak Diemen

Reputation: 61

C++ header error C2238 unexpected token ';'

There is a C2238 error in the PauseMenu header file on the line: Game* game; It says that ';' is an unexpected token, as well as: C2143 syntax error: missing ';' before '*' on the same line; I have no idea what's wrong in those files, I thought both files are correct.

PauseMenu.h Header File:

#pragma once
#include "EventHandler.h";
#include "MousePressEvent.h";
#include "RectElement.h";
#include "Engine.h";

class PauseMenu :
    public EventHandler
{
public:
    PauseMenu();
    void Show();
    void Hide();
    void onEvent(Event* event);
    void onEvent(MousePressEvent* event);

    Game* game;

private:
    RectElement* background;
    RectElement* resume;
    RectElement* options;
    RectElement* quit;

    bool visible = false;
};

Game.h Header File

#pragma once;
#include "Engine.h";
#include <ctime>;
#include "GameLayer.h";
#include "TextElement.h";
#include "HUDManager.h";
#include <windows.h>;
#include "Collider.h";
#include "CircleCollider.h";
#include "BoxCollider.h";
#include "MouseMoveEvent.h";
#include "CollisionShapeHitEvent.h";
#include "EventHandler.h";
#include "MainMenu.h";
#include "FpsCounter.h";
#include "PauseMenu.h";
#define PI 3.14159265358979323846264338327950288;

class Game :
    public EventHandler
{
public:
    Game(bool dev);
    ~Game();
    void onEvent(Event* event);
    void onEvent(MouseMoveEvent* event);
    void onEvent(KeyPressEvent* event);
    void onEvent(KeyReleaseEvent* event);
    void onEvent(CollisionShapeHitEvent* event);

    MainMenu* mainMenu;
    PauseMenu* pauseMenu;
private:
    Player* player;
    Engine* engine;
};

Upvotes: 1

Views: 10419

Answers (3)

Nobody
Nobody

Reputation: 1

Try to put destructor ~PauseMenu(){} at the end of class.

Upvotes: 0

Swordfish
Swordfish

Reputation: 13134

Remove the semicolons after your #includes and #defines. In fact: Remove all semicolons after lines beginning with # if you can't find a reason for them to be there.

And I doubt that you need all those files included in game.h. But you are missing game.h in pausemenu.h or a forward declaration of Game:

class Game;

Upvotes: 3

SHR
SHR

Reputation: 8313

I guess you have some circular depenency between headers.

To solve it, you can use forward declaration for class Game; in PauseMenu.h Header File before the class PauseMenu.

I guess this way you still maight get other errors but you'll skip the mentioned one

Upvotes: 1

Related Questions