嗯,嗨那里。
我是c +的新手,我遇到了一些问题,我不确定是什么原因造成的。 这是我的主要内容:
#include "GameWindow.h"
int main(void)
{
GameWindow * game_window = new GameWindow(true);
/* loop the game */
while (game_window->GetRunning())
{
// update
game_window->Update();
// draw
game_window->Draw();
}
delete game_window;
return 0;
}
这是我的标题:
class GameWindow
{
private:
bool _running;
//GLFWwindow* _window;
public:
void SetRunning(bool new_val);
bool GetRunning();
GameWindow(bool running);
void Draw();
void Update();
}
和我的c ++文件:
#include "GameWindow.h"
void GameWindow::SetRunning(bool new_val)
{
_running = new_val;
}
bool GameWindow::GetRunning()
{
return _running;
}
GameWindow::GameWindow(bool running) :
_running(running)
{
}
void GameWindow::Draw()
{
}
void GameWindow::Update()
{
}
在完成所有这些工作的同时,我发现很难找到Visual Studio拒绝编译此代码的原因。 它引发了关于'SetRunning'如何重载函数的错误,该函数仅在返回值上有所不同,并且main的返回类型应该是Int而不是GameWindow,并且所有这些我只是完全丢失了。 试图将“SetRunning”作为评论来简化问题,但相反,它在“GetRunning”上提出了相同的内容。 我猜这是一个很容易修复的愚蠢的错误,但仍然无法找到它。
感谢您抽出宝贵时间,我将不胜感激。
答案 0 :(得分:8)
在课程定义结束时遗漏;
。
class GameWindow
{
// .....
}; // Missing semi-colon
答案 1 :(得分:0)
失踪;在课堂上定义 { };
因为当你在程序中包含文件然后编译器找不到类的结尾因此它说main的返回类型应该是int而不是GameWindow