我不知道我是否会发疯,还是我所读过的所有关于此错误的信息都不适用于我的情况。但是在编译项目时遇到了这些错误:
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?)
因此,我用Google搜索出了错误,每个人都说这是由多余和/或缺少分号和方括号引起的。但是我已经仔细检查了我的代码(不是很多!),我什么都看不到,除非当然,如我先前所建议的那样,我会发疯...
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++以来已经有一段时间了,但是我重读了类定义文章和各种内容。我有种不太奇怪的感觉,它本来应该很愚蠢。
最佳答案
您需要为析构函数编写CGame::~CGame()
而不是~CGame::CGame()
。它始终是类名(CGame
),然后是成员名(~CGame
)。
关于c++ - C++错误C2447?我想念什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7762296/