未定义的类构造函数引用

时间:2013-07-16 19:02:20

标签: c++ undefined-reference

这是我的代码:

menuState.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库,并在编译器搜索目录中设置了标题路径。

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

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