2

我正在尝试创建一个子类,在类构造函数上我得到了Undefined reference to "vtable for Menu"一个奇怪的错误,因为我用相同的代码创建了许多子类。

class GameState
{
    public:
        virtual ~GameState(){};
        virtual void handle_events() = 0;
        virtual void logic() = 0;
        virtual void render() = 0;
};

class Level: public GameState
{
    private:
    public:
        Level();
        ~Level();
        void handle_events();
        void logic();
        void render();
};

Level::Level() // OK
{
}

~Level::Level()
{
}

class Menu : public GameState
{
    private:
    public:
        Menu();
        ~Menu();
        void handle_events();
        void logic();
        void render();
};

Menu::Menu() // ERROR
{
}

~Menu::Menu()
{
}

我究竟做错了什么?

4

1 回答 1

3

您的波浪号 (~) 在析构函数中的位置错误:

~Menu::Menu()
{
}

应该:

Menu::~Menu()
{
}

您还需要提供其他三个虚拟功能的定义。

于 2013-10-07T22:21:56.110 回答