1. 程式人生 > >c++ 編譯報錯彙總(隨時更新)

c++ 編譯報錯彙總(隨時更新)

1、invalid new-expression of abstract class type ‘×××ב

這個報錯代表一個嘗試在例項化一個抽象類,也就是說父類的介面中有純虛擬函式在子類中沒有實現;

舉例:

 

//父類
class parent:
{
  virtual ~parent();
  virtual void func1() = 0;
};

//子類
class child: public parent
{
  child();
  ~child();
};

int main()
{
  parent *test = new child();
};

 

這樣編譯就會報錯,子類中必須要實現所有父類裡面定義的純虛擬函式

正確方式如下:

class parent:
{
  virtual ~parent();
  virtual void func1() = 0;
};

class child: public parent
{
  child();
  ~child();
  void func1() {}
}

int main()
{
  parent *test = new child();
};