这是我的代码:
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函数之前。
以下是确切的构建消息:http://pastebin.com/e819FhPj
我确实链接了sfml库,并在编译器搜索目录中设置了标题路径。
答案 0 :(得分:5)
总是最好显示错误的确切文本,但我的猜测是,您收到链接器错误,而不是编译器错误。你有没有在任何地方实现构造函数?我打赌你没有。
答案 1 :(得分:1)
我不是一个经验丰富的C ++开发人员,但似乎已经声明了MenuState构造函数但未定义。 替换MenuState();使用MenuState(){}应修复错误。