我有一个抽象的基类。我从抽象基础继承了一个新类,我无法实例化一个对象。编译器告诉的原因是
cannot allocate an object of abstract type
有没有办法克服这个问题。
答案 0 :(得分:10)
无法分配抽象类型的对象
这表示您尚未在派生类中实现所有 纯 virtual
函数。首先,实现所有纯虚函数,然后创建该类的实例。
您无法创建具有单个纯 virtual
函数的类实例!
请记住,纯虚拟函数是指定为零(C++ Virtual/Pure Virtual Explained)的虚函数,如
class sample
{
public:
virtual void f(); //virtual function
virtual void g()=0; //pure virtual function
};
这里只有g()
是纯虚函数!这使得sample
成为abstract class,如果派生类没有定义g()
,它也将成为一个抽象类。你不能创建任何这些类的实例,因为它们都是抽象的!