对于“不能实例化抽象类”编译错误,主要基本是子类继承于抽象类,然后有某个抽象函数没有实现导致:
例如,抽象类A
1 class A{
2 public:
3 A();
4 virtual test() const = 0;
5 }
子类B继承A
1 class B : public A{
2 public:
3 B();
4 }
若这个时候直接实例化B,则会出现“不能实例化抽象类”的编译错误:
1 int main(){
2 B b();
3 }
这时只要实现父类A中的所有纯虚函数即可:
1 class B:public A{
2 public:
3 B();
4 virtual test() const{
5 // Do something
6 }
7 }