c – “非虚拟thunk到”,引用:Vtable for in

在调试模式下编译时,我的 xcode编译有这些链接错误
"<method name>",referenced from: 
Vtable for <classname>in <objectfile.o>

"non-virtual thunk to <method name>",referenced from: 
Vtable for <classname>in <objectfile.o>

奇怪的是:它只发生在我的一个构建目标(这两个目标对于该代码几乎相同),加上如果这些方法是在头文件而不是.cpp中定义的,这两个目标都可以正常工作.

所有这些方法都是纯虚拟的.发生这些错误的类继承自多个类,但只有一个会导致这些错误.

任何人有什么想法导致这个错误

解决方法

受到同样的问题的打击.
当我们定义了一个虚拟成员函数(在.h头文件中)但是没有实现它(在.cpp文件中)时,就发生了.

在我的情况下,实现在#define中,阻止实际编译. GCC应该对这种常见的错误有更明确的信息,例如

virtual function <function> defined but not implemented in class <class>

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...