C ++帮助在头文件上编写带声明的类

时间:2013-09-06 12:43:39

标签: c++ return-value header-files

嗯,嗨那里。

我是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”上提出了相同的内容。 我猜这是一个很容易修复的愚蠢的错误,但仍然无法找到它。

感谢您抽出宝贵时间,我将不胜感激。

2 个答案:

答案 0 :(得分:8)

在课程定义结束时遗漏;

class GameWindow
{
   // .....

}; // Missing semi-colon

答案 1 :(得分:0)

失踪;在课堂上定义 { };

因为当你在程序中包含文件然后编译器找不到类的结尾因此它说main的返回类型应该是int而不是GameWindow