LNK2019 - Destruidor virtual na classe abstrata [duplicado]

Possível duplicado:
Destruidor virtual puro em C ++

Eu tenho duas classes: a classe abstrata "Game" e a classe "TestGame" derivada. Todas as funções no TestGame são implementadas separadamente para nada (por uma questão de fazê-lo compilar). Estou recebendo apenas um erro:

TestGame.obj: erro LNK2019: símbolo externo não resolvido "public: virtual __thiscall Game :: ~ Game (void)" (?? 1Game @@ UAE @ XZ) mencionado na função "public: virtual __thiscall TestGame :: ~ TestGame (void) "(?? 1TestGame @@ UAE @ XZ)

Aqui estão as minhas definições de classe:

class Game
{
public:
    virtual ~Game(void) = 0;

    virtual bool Initialize() = 0;
    virtual bool LoadContent() = 0;
    virtual void Update() = 0;
    virtual void Draw() = 0;
};

class TestGame: public Game
{
public:
    TestGame(void);
    virtual ~TestGame(void);

    virtual bool Initialize();
    virtual bool LoadContent();
    virtual void Update();
    virtual void Draw();
};

Eu tentei algumas coisas, mas acho que talvez esteja perdendo algo fundamental sobre como as aulas de abstração e derivação funcionam.

questionAnswers(1)

yourAnswerToTheQuestion