C++错误 C2447?我缺少什么

发布于 2024-12-10 06:19:37 字数 2140 浏览 0 评论 0原文

我不知道我是否疯了,或者只是我读到的有关此错误的所有内容都不适用于我的情况。但是当我编译我的项目时,我遇到了这些错误:

1>f:\program files\testengine\testengine\testengine\game.cpp(10) : error C2061: syntax error : identifier '{ctor}'
1>f:\program files\testengine\testengine\testengine\game.cpp(11) : error C2143: syntax error : missing ';' before '{'
1>f:\program files\testengine\testengine\testengine\game.cpp(11) : error C2447: '{' : missing function header (old-style formal list?)
1>f:\program files\testengine\testengine\testengine\game.cpp(15) : error C2059: syntax error : 'public'
1>f:\program files\testengine\testengine\testengine\game.cpp(16) : error C2143: syntax error : missing ';' before '{'
1>f:\program files\testengine\testengine\testengine\game.cpp(16) : error C2447: '{' : missing function header (old-style formal list?)

所以,我用谷歌搜索了这个错误,每个人都说这是由额外和/或缺少分号和括号等原因引起的。但是我已经检查了我的代码很多(没有太多!)并且我没有看到任何这些,当然,除非正如我之前所建议的,我要疯了......

Game.h

#ifndef _SBE_CGAME_
#define _SBE_CGAME_

class CGame
{
public:
    CGame();
    ~CGame();

    void DoLoop();
};
#endif //_SBE_CGAME_

Game.cpp

#include "base.h"

extern CGame* m_gGame;

CGame::CGame()
{
    //
}

~CGame::CGame()
{
    //
}

public void CGame::DoLoop()
{
    SwapBuffers(hDC);
}

Base.h

#include <windows.h>        // Header File For Windows ==NEEDS TO COME BEFORE GL.H AND GLU.H==
#include <gl\gl.h>
#include <gl\glu.h> 

#include "Properties.h"
#include "Game.h"
#include "Renderer.h"

#ifndef _SBE_BASE_
#define _SBE_BASE_

extern CGame* m_gGame;

#endif //_SBE_BASE_

Globals.cpp

#include "base.h"

//=================================================================================
// Here is where we define all the global variables
//=================================================================================
CGame* m_gGame = new CGame();

我忽略了什么?我承认,自从我编写 C++ 程序以来已经有一段时间了,但我重读了类定义文章和各种各样的东西。我有一种不那么奇怪的感觉,这将是一件非常愚蠢的事情,我应该看到的。

I don't know if I'm going crazy, or just that everything I've read on this error doesn't apply to my situation. But I'm getting these errors when I compile my project:

1>f:\program files\testengine\testengine\testengine\game.cpp(10) : error C2061: syntax error : identifier '{ctor}'
1>f:\program files\testengine\testengine\testengine\game.cpp(11) : error C2143: syntax error : missing ';' before '{'
1>f:\program files\testengine\testengine\testengine\game.cpp(11) : error C2447: '{' : missing function header (old-style formal list?)
1>f:\program files\testengine\testengine\testengine\game.cpp(15) : error C2059: syntax error : 'public'
1>f:\program files\testengine\testengine\testengine\game.cpp(16) : error C2143: syntax error : missing ';' before '{'
1>f:\program files\testengine\testengine\testengine\game.cpp(16) : error C2447: '{' : missing function header (old-style formal list?)

So, I Google'd the error, and everyone said this is caused by things like extra and/or missing semicolons and brackets. But I've looked over my code a lot (there's not very much!) and I don't see any of that, unless of course, as I previously suggested, I'm going crazy...

Game.h

#ifndef _SBE_CGAME_
#define _SBE_CGAME_

class CGame
{
public:
    CGame();
    ~CGame();

    void DoLoop();
};
#endif //_SBE_CGAME_

Game.cpp

#include "base.h"

extern CGame* m_gGame;

CGame::CGame()
{
    //
}

~CGame::CGame()
{
    //
}

public void CGame::DoLoop()
{
    SwapBuffers(hDC);
}

Base.h

#include <windows.h>        // Header File For Windows ==NEEDS TO COME BEFORE GL.H AND GLU.H==
#include <gl\gl.h>
#include <gl\glu.h> 

#include "Properties.h"
#include "Game.h"
#include "Renderer.h"

#ifndef _SBE_BASE_
#define _SBE_BASE_

extern CGame* m_gGame;

#endif //_SBE_BASE_

Globals.cpp

#include "base.h"

//=================================================================================
// Here is where we define all the global variables
//=================================================================================
CGame* m_gGame = new CGame();

What am I overlooking? I will admit, its been a while since I've programmed C++, but I reread class definition articles and all sorts of things. I have this not-so-strange feeling that its going to be something very silly, that I should have seen.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

归途 2024-12-17 06:19:37

在 Game.cpp 中:

~CGame::CGame()

应该是

CGame::~CGame()

并将 public 关键字放在 CGame::DoLoop 的定义上。

In Game.cpp:

~CGame::CGame()

should be

CGame::~CGame()

And drop the public keyword on the definition of CGame::DoLoop.

橙味迷妹 2024-12-17 06:19:37

您需要为析构函数编写 CGame::~CGame() 而不是 ~CGame::CGame() 。它始终是类名在前 (CGame),然后是成员名称 (~CGame)。

You need to write CGame::~CGame() instead of ~CGame::CGame() for the destructor. It's always the class name first (CGame) and only then the member name (~CGame).

一紙繁鸢 2024-12-17 06:19:37
#include <windows.h>        // Header File For Windows ==NEEDS TO COME BEFORE GL.H AND GLU.H==
#include <gl\gl.h>
#include <gl\glu.h> 

#include "Properties.h"
#include "Game.h"
#include "Renderer.h"

#ifndef _SBE_BASE_
#define _SBE_BASE_

extern CGame* m_gGame;

#endif //_SBE_BASE_

为什么你只包含保护这个文件的一部分?

#ifndef _SBE_BASE_
#define _SBE_BASE_
#include <windows.h>        // Header File For Windows ==NEEDS TO COME BEFORE GL.H AND GLU.H==
#include <gl\gl.h>
#include <gl\glu.h> 

#include "Properties.h"
#include "Game.h"
#include "Renderer.h"

extern CGame* m_gGame;

#endif //_SBE_BASE_

不管怎样,我的猜测是 Properties.h 或 Renderer.h 中有一些奇怪的东西

#include <windows.h>        // Header File For Windows ==NEEDS TO COME BEFORE GL.H AND GLU.H==
#include <gl\gl.h>
#include <gl\glu.h> 

#include "Properties.h"
#include "Game.h"
#include "Renderer.h"

#ifndef _SBE_BASE_
#define _SBE_BASE_

extern CGame* m_gGame;

#endif //_SBE_BASE_

Why are you only include-guarding part of this file?

#ifndef _SBE_BASE_
#define _SBE_BASE_
#include <windows.h>        // Header File For Windows ==NEEDS TO COME BEFORE GL.H AND GLU.H==
#include <gl\gl.h>
#include <gl\glu.h> 

#include "Properties.h"
#include "Game.h"
#include "Renderer.h"

extern CGame* m_gGame;

#endif //_SBE_BASE_

Anyway, my guess is something weird in Properties.h or Renderer.h

只是在用心讲痛 2024-12-17 06:19:37

你错误地声明了你的析构函数,

它应该是

CGame::~CGame()

you have mis-declared your destructor

it should be

CGame::~CGame()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文