当前位置: 代码迷 >> 综合 >> C++编译错误:undefined reference to “vtable for xxx”;cannot allocate an object of abstract type“xxx”
  详细解决方案

C++编译错误:undefined reference to “vtable for xxx”;cannot allocate an object of abstract type“xxx”

热度:63   发布时间:2023-12-19 01:01:14.0

1. undefined reference to “vtable for xxx”

原因分析:

通过查看代码发现基类中存在虚函数只有定义没有实现。

解决方法:

将基类中的虚函数进行实现,或将其定义为纯虚函数。

2. cannot allocate an object of abstract type“xxx”

原因分析:
通过查看代码发现C++程序在创建一个类的对象时报错:Cannot allocate an object of abstract type“XXX”
原因是对象类继承自一个基类,该基类中的函数存在纯虚函数,而对象类中没有重载全部纯虚函数。

解决方法:
在基类中声明的虚函数,在派生类中必须继承并实现。这样在new一个派生类时才不会报该错误。
将基类中所有虚函数,在派生类中都一一继承、实现。
 

  相关解决方案