C++错误C2447?我错过了什么
C++ Error C2447? What am I missing
我不知道我是疯了,还是我读到的关于这个错误的所有内容都不适用于我的情况。但我在编译我的项目时遇到了这些错误:
1>f:program filestestenginetestenginetestenginegame.cpp(10) : error C2061: syntax error : identifier '{ctor}'
1>f:program filestestenginetestenginetestenginegame.cpp(11) : error C2143: syntax error : missing ';' before '{'
1>f:program filestestenginetestenginetestenginegame.cpp(11) : error C2447: '{' : missing function header (old-style formal list?)
1>f:program filestestenginetestenginetestenginegame.cpp(15) : error C2059: syntax error : 'public'
1>f:program filestestenginetestenginetestenginegame.cpp(16) : error C2143: syntax error : missing ';' before '{'
1>f:program filestestenginetestenginetestenginegame.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 <glgl.h>
#include <glglu.h>
#include "Properties.h"
#include "Game.h"
#include "Renderer.h"
#ifndef _SBE_BASE_
#define _SBE_BASE_
extern CGame* m_gGame;
#endif //_SBE_BASE_
全局.cpp
#include "base.h"
//=================================================================================
// Here is where we define all the global variables
//=================================================================================
CGame* m_gGame = new CGame();
我在俯瞰什么?我承认,我已经有一段时间没有编程C++了,但我重读了类定义文章和各种各样的东西。我有一种并不奇怪的感觉,这将是一件非常愚蠢的事情,我本应该看到。
在Game.cpp中:
~CGame::CGame()
应该是
CGame::~CGame()
并在CGame::DoLoop
的定义上删除public
关键字。
您需要为析构函数编写CGame::~CGame()
而不是~CGame::CGame()
。它总是首先是类名(CGame
(,然后才是成员名(~CGame
(。
#include <windows.h> // Header File For Windows ==NEEDS TO COME BEFORE GL.H AND GLU.H==
#include <glgl.h>
#include <glglu.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 <glgl.h>
#include <glglu.h>
#include "Properties.h"
#include "Game.h"
#include "Renderer.h"
extern CGame* m_gGame;
#endif //_SBE_BASE_
无论如何,我的猜测是Properties.h或Renderer.h 中有一些奇怪的东西
您错误地声明了析构函数
应该是
CGame::~CGame()
相关文章:
- 我的C++合并排序代码不起作用。我在这里错过了什么?
- 我是否为邪恶刽子手的构造函数错过了什么?
- C++:将向量传递给函数,然后在main中调用函数.错过了什么
- 随机访问迭代器:我错过了什么?
- 在这个while循环中我错过了什么?
- 我是否错过了什么,或者虚拟呼叫的性能并不像人们所说的那样糟糕
- 我在变量上收到 3 个 C4703 错误,我认为我已经正确初始化了,但我不确定我错过了什么
- 如果这不是 boost::lockfree::d etail::freelist 中的错误,我在这里错过了什么
- 尝试使用类,但未打印任何内容.不会生成任何错误.我错过了什么吗?
- 尝试实现通过引用传递的向量以与二叉树一起使用,我错过了什么
- 此代码的输出是什么?我在这里错过了什么吗?
- 下面显示的代码片段在 Coliru 和 Ideone 中编译,但根据 iso § 8.5 p6,它不应该,还是我错过了什么?
- AFAIK,下面的代码不应该编译,但它可以在 clang 和 GCC 中编译。我在这里错过了什么?
- 仅在标头中定义时内联的函数.我错过了什么吗?
- 我错过了什么吗?我一直在输出"No file found!"
- 安全布尔成语 - 我是否找到了更简单的方法,还是我错过了什么
- 我错过了什么
- 无法完成Rice(Ruby)的简单示例.我错过了什么
- 为什么包括警卫对我没有影响?我是不是错过了什么
- 据我所知,下面的函数不是constexpr,而是用clang和g++编译的代码.我错过了什么