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)