错误LNK2019未解析的外部符号虚拟类

Aph*_*heX 4 c++ virtual inheritance abstract-class visual-studio-2010

我知道这个问题已被问过几次,但我找不到如何解决它.

我在尝试构建项目时遇到此错误:

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)
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

IGameState.h

class IGameState
{
    public:
        virtual ~IGameState();
        virtual void update() = 0;
        virtual void render() = 0;
};
Run Code Online (Sandbox Code Playgroud)

MenuState.h

#include "IGameState.h"

class MenuState : public IGameState
{
public:
    MenuState();
    ~MenuState();
    void update();
    void render();
};
Run Code Online (Sandbox Code Playgroud)

MenuState.cpp

#include "MenuState.h"

#pragma region Constructor

MenuState::MenuState() {

}

MenuState::~MenuState() {

}

#pragma endregion


void MenuState::render() {

}

void MenuState::update() {

}
Run Code Online (Sandbox Code Playgroud)

析构函数有什么问题?谢谢.

bil*_*llz 7

错误消息告诉您这是一个链接错误,因为您尚未实现~IGameState(),请尝试添加以下代码:

class IGameState
{
    public:
        virtual ~IGameState() {} 
                            //^^^^ define it
        virtual void update() = 0;
        virtual void render() = 0;
};
Run Code Online (Sandbox Code Playgroud)

  • @saurabheights 那是 C++:http://stackoverflow.com/questions/3336499/virtual-desctructor-on-pure-abstract-base-class (2认同)