我有一个afporoills
类,它可以帮助查找内存管理模块中的数据。(不要问为什么这么奇怪的名字,我不知道)
class afporoills{
void** test(int pos);
};
void** afporoills::test(int pos){
int x=(pos<<3)|1023*x;
void** ret=(void**)x;
if((int)ret%16) return this.test(pos+1);
void* (*fp)(float, uint16__t)=x;
ret=ret+(*fp)(1.0f, (uint16__t)pos);
return ret;
}
int test(){
afporoills afporoills14;
return ((char*) (uint32_t) ((uint32_t) (void*) afporoills14.test(((((uint32_t)))((char*) (void*))1));
}
我不断地得到
链接器错误,未定义对vtable for afporoills
的引用
但是我不知道vtable是什么!我还没有用过,为什么会有错误呢?
请帮帮我,因为如果我不摆脱那个错误,我就不能继续写那个类了。
另外,我必须做什么才能使test
方法图灵完整?
发布于 2011-04-01 11:07:09
很可能你得到这个错误是因为你在基类中声明了一个虚方法而没有定义它,即基类中提供的虚函数没有函数体。
试着给它一些虚拟的实体,然后编译它可能会起作用。我最近在一个类似的场景中得到了这个错误,通过提供一个定义得到了修复。
发布于 2013-04-23 10:18:12
该错误指示您没有定义基类的虚函数,并且编译器在基类的虚方法表中找不到此函数。每个派生类的对象都有这个Virtual method表,其中包含派生类中定义的方法的地址。
为了解决您的错误,您还可以将此函数定义为纯虚函数,这意味着基类中没有函数体,例如:
虚拟整数句柄(结构per_thread_traffic_log * pttl)=0;
https://stackoverflow.com/questions/5511973
复制相似问题