4

この質問が何度か聞かれたことは知っていますが、解決方法がわかりません。

プロジェクトをビルドしようとすると、次のエラーが表示されます。

error LNK2019: unresolved external symbol "public: virtual __thiscall IGameState::~IGameState(void)" (??1IGameState@@UAE@XZ) in function "public: virtual __thiscall MenuState::~MenuState(void)" (??1MenuState@@UAE@XZ)

これが私のコードです:

IGameState.h

class IGameState
{
    public:
        virtual ~IGameState();
        virtual void update() = 0;
        virtual void render() = 0;
};

MenuState.h

#include "IGameState.h"

class MenuState : public IGameState
{
public:
    MenuState();
    ~MenuState();
    void update();
    void render();
};

MenuState.cpp

#include "MenuState.h"

#pragma region Constructor

MenuState::MenuState() {

}

MenuState::~MenuState() {

}

#pragma endregion


void MenuState::render() {

}

void MenuState::update() {

}

デストラクタの何が問題になっていますか? ありがとう。

4

1 に答える 1

6

エラー メッセージは、リンク エラーであることを示しています。実装していないためです~IGameState()。次のコードを追加してみてください。

class IGameState
{
    public:
        virtual ~IGameState() {} 
                            //^^^^ define it
        virtual void update() = 0;
        virtual void render() = 0;
};
于 2013-06-24T09:42:50.360 に答える