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