头文件中的类

NRa*_*Raf 1 c++ virtual header function

我正在使用的C++程序遇到一些麻烦.我用一个纯虚方法创建了一个抽象类.由于该类没有变量或实现的方法,我将该类存储在没有.cpp实现文件的头文件中(没有任何需要).

方法是:

virtual void handleEvent() = 0;
Run Code Online (Sandbox Code Playgroud)

问题是当我从该类继承并实现该方法时:

virtual void handleEvent(); (.h file)
void handleEvent(){.....} (.cpp file)
Run Code Online (Sandbox Code Playgroud)

我收到编译器错误(使用g ++):

(.rodata._ZtV10Engine[vtable for Engine]+0x8): undefined reference to Engine::handleEvent()
Run Code Online (Sandbox Code Playgroud)

该文件包含在Engine头类中.任何想法为什么这不起作用?

dor*_*ron 11

我想你忘了把类限定符放在.cpp实现中.它可能应该是:

void Engine::handleEvent() { ... }
Run Code Online (Sandbox Code Playgroud)