C++ undefined reference to `vtable for

来源:https://blog.csdn.net/youngstonep/article/details/48825239
项目代码编译时,经常出现类似错误:signleClientReadTest.o: In function ReplayTask::ReplayTask()': /home/ndsl/vdfs/test0922/trunk/build/test/DS/readTest/../../../../src/DS/Task/ReplayTask.h:28: undefined reference tovtable for ReplayTask’

百度如下关键词“undefined reference to `vtable for”,大部分回答都是子类没有实现父类的纯虚函数,的确是这样的。

不过另外的一些情形是,实验室的基类代码中在某个不起眼的地方调用了父类的虚函数(不是纯虚函数的虚函数),然后子类代码中又没有实现它,也会报此类错误。

子类中的构造函数和析构函数也要注意,必须要实现,至少加个{}。

子类构造函数要主动调用父类的构造函数。比如

class father

{

    father(){};

    ~father(){};

}

class son: public father

{

    son():

      father()

    {}

    ~son(){}

}

发布了45 篇原创文章 · 获赞 21 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/xxradon/article/details/95304059