今天写代码遇到了一个问题,在链接期编译器报错"undefined reference to vtable...",这个错误一般是由于有虚函数生命但未被定义,因此在虚函数表中找不到reference。然而我报错的这个类中根本就没写虚函数啊,反复排查发现该类继承了一个factory类,为了将factory定义为接口,将其析构函数定义为了纯析构函数,子类继承父类的时候会调用父类的构造函数与析构函数,因此才会在子类中出现虚函数表的问题。以后对于继承一定要注意构造函数的实现,编译器对这个的检查是十分严格的。
随笔一:子类继承与构造函数,析构函数,纯析构函数
最新推荐文章于 2023-04-15 20:46:27 发布