0

这是我的代码:

菜单状态.hpp

#ifndef MENU_STATE_HPP
#define MENU_STATE_HPP

#include "state.hpp"
#include <SFML/Graphics.hpp>

class MenuState : public State
{
    public:
        MenuState();

        static void create(StateListener* Parent, const std::string name)
        {
            MenuState* myState = new MenuState();
            myState->parent = Parent;
            Parent->manageState(name, myState);
        }

        void enter();
        void exit();
        void resume();
    private:

};

#endif // MENU_STATE_HPP

当我这样做时MenuState* myState = new MenuState();,我得到了对构造函数的未定义引用,我不确定为什么,因为 MenuState::MenuState() 在类声明中的 create 函数之前。

编辑:我的所有 sfml 函数也遇到同样的错误。

这是确切的构建消息: http: //pastebin.com/e819FhPj

我确实在我的编译器搜索目录中链接了 sfml 库和头文件路径。

4

2 回答 2

5

最好显示错误的确切文本,但我有根据的猜测是,您得到的是链接器错误,而不是编译器错误。你真的在任何地方实现了构造函数吗?我打赌你没有。

于 2013-07-16T19:06:22.613 回答
1

我不是经验丰富的 C++ 开发人员,但似乎 MenuState 构造函数已声明但未定义。替换菜单状态();使用 MenuState(){} 应该可以修复错误。

于 2013-07-16T19:11:31.583 回答