error LNK2019 - Virtual destructor in abstract class
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Pure virtual destructor in C++
我有两个类:抽象的"game"类和派生的"testgame"类。testgame中的所有函数都单独实现为零(为了让它编译)。我只收到一个错误:
TestGame.obj : error LNK2019:
unresolved external symbol"public:
virtual __thiscall Game::~Game(void)"
(??1Game@@UAE@XZ) referenced in
function"public: virtual __thiscall
TestGame::~TestGame(void)"
(??1TestGame@@UAE@XZ)
以下是我的类定义:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | 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(); }; |
我尝试过一些东西,但我觉得我可能遗漏了一些关于抽象和派生类如何工作的基本知识。
实际上,您需要为基类定义析构函数,即使它是纯虚拟的,因为当派生类被销毁时将调用它。
1 | virtual ~Game() { /* Empty implementation */ } |
纯虚拟的