当前位置: 代码迷 >> 综合 >> c++编译错误:invalid new-expression of abstract class type
  详细解决方案

c++编译错误:invalid new-expression of abstract class type

热度:90   发布时间:2023-11-20 11:12:00.0

 

源码:

class BreadthFirstTraversal : public GraphTraversal<T>

{

.................;

}

m_pTraversal = new BreadthFirstTraversal<LocalizedRangeScan>(this);

出错原因:出现这个错误原因是new 了一个子类对象类出错,说明父类(接口)中有纯虚函数没有实现。接口里的纯虚函数全部需要在子类实现,这样才能new 子类。

例如:
纯虚函数例如  void fun() = 0; 是纯虚函数,不是纯虚函数不作要求。

另外,void fun()  {  }  空函数体也是实现。



=0 说明函数是抽象的方法,谁继承它就必须实现它

否则不能new。

 

  相关解决方案