C++ C++;标头错误C2238意外标记'';

C++ C++;标头错误C2238意外标记'';,c++,C++,PAUSEMEU头文件中的以下行有C2238错误:Game*Game; 上面写着“;”是意外标记,以及:C2143语法错误:缺少“;”在同一行的“*”之前;我不知道这些文件有什么问题,我认为这两个文件都是正确的 PauseMenu.h头文件: #pragma once #include "EventHandler.h"; #include "MousePressEvent.h"; #include "RectElement.h"; #include "Engine.h"; class Paus

PAUSEMEU头文件中的以下行有C2238错误:Game*Game; 上面写着“;”是意外标记,以及:C2143语法错误:缺少“;”在同一行的“*”之前;我不知道这些文件有什么问题,我认为这两个文件都是正确的

PauseMenu.h头文件:

#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头文件

#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;
};
#pragma一次;
#包括“发动机h”;
#包括,;
#包括“GameLayer.h”;
#包括“TextElement.h”;
#包括“HUDManager.h”;
#包括,;
#包括“Collider.h”;
#包括“CircleCollider.h”;
#包括“BoxCollider.h”;
#包括“MouseMoveEvent.h”;
#包括“CollisionShapeHiteEvent.h”;
#包括“EventHandler.h”;
#包括“MainMenu.h”;
#包括“fpsconter.h”;
#包括“PauseMenu.h”;
#定义PI 3.14159265358979323846264338327950288;
班级游戏:
公共事件处理程序
{
公众:
游戏(bool-dev);
~Game();
void onEvent(事件*事件);
void onEvent(MouseMoveEvent*事件);
void onEvent(按键事件*事件);
void onEvent(KeyReleaseEvent*事件);
void onEvent(CollisionShapeHitEvent*事件);
主菜单*主菜单;
PauseMenu*PauseMenu;
私人:
玩家*玩家;
引擎*引擎;
};

删除
#include
s和
#define
s后的分号。事实上:如果找不到分号出现的原因,请删除以
#
开头的行后的所有分号

我怀疑您是否需要
game.h
中包含的所有这些文件。但是您在
pausemenu.h
中缺少
game.h
,或者
game
的前向声明:

class Game;

删除
#include
s和
#define
s后的分号。事实上:如果找不到分号出现的原因,请删除以
#
开头的行后的所有分号

我怀疑您是否需要
game.h
中包含的所有这些文件。但是您在
pausemenu.h
中缺少
game.h
,或者
game
的前向声明:

class Game;

我猜标题之间有一些循环依赖关系

要解决这个问题,您可以使用
类游戏的正向声明类PauseMenu
之前的PauseMenu.h头文件中的code>


我想这样你仍然会有其他错误,但是你会跳过前面提到的一个,我想你在标题之间有一些循环依赖性

要解决这个问题,您可以使用
类游戏的正向声明类PauseMenu
之前的PauseMenu.h头文件中的code>


我想这样你仍然会遇到其他错误,但是你会跳过前面提到的一个

尝试放置析构函数~PauseMenu(){}
在类的末尾。

尝试放置析构函数~PauseMenu(){}
在课程结束时。

你是否忘记在你的
PauseMenu.h
中包含“Game.h”
?我忘记了,但是@yksisarvine之后仍然存在相同的错误你在
Game
PauseMenu
之间存在循环依赖关系,你需要两者都包含指向对方的指针吗?您需要向前声明这些类中的一个,或者更好地解决循环依赖关系,这样这两个类就不需要另一个了。我之前的评论无效,您不能执行循环包含可能重复的您是否忘记在您的
PauseMenu.h
中包含“Game.h”
?我执行了,但@yksisarvine之后仍然存在相同的错误您在
Game
PauseMenu
之间存在循环依赖关系,是否需要两者都包含指向彼此的指针?您需要向前声明这些类中的一个,或者更好地解决循环依赖关系,这样这两个类就不需要另一个了。我之前的评论无效,您也不能在pragma后面重复使用分号。您需要仔细阅读c预处理器的功能。它解释了以#开头的每一行。编译器永远看不到这些行。Cpp不使用分号。请删除每行末尾以#开头的分号(这意味着以#pragma、#define、#include开头的行)。宏有时包括“;”但您必须知道宏的预期用途。如果您想试验宏,请使用“cpp”(c预处理器)命令查看代码最终是如何展开的。顺便说一句,通常头文件使用模式“#ifndef SYMBOL_H#define SYMBOL_H…..#endif”,不确定#pragma的可移植性。AFAIK#pragma once不是标准的一部分,但它在编译器中得到了很好的支持。pragma后面也没有分号。您需要仔细阅读c预处理器的功能。它解释了以#开头的每一行。编译器永远看不到这些行。Cpp不使用分号。请删除每行末尾以#开头的分号(这意味着以#pragma、#define、#include开头的行)。宏有时包括“;”但您必须知道宏的预期用途。如果您想试验宏,请使用“cpp”(c预处理器)命令查看代码最终是如何展开的。顺便说一句,通常头文件使用模式“#ifndef SYMBOL_H#define SYMBOL_H…..#endif”,不确定#pragma的可移植性。AFAIK#pragma once不是标准的一部分,但它在编译器中得到了很好的支持。