抽象类的继承

时间:2011-02-13 18:27:23

标签: c++ inheritance

我有一个抽象的基类。我从抽象基础继承了一个新类,我无法实例化一个对象。编译器告诉的原因是

cannot allocate an object of abstract type

有没有办法克服这个问题。

1 个答案:

答案 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(),它也将成为一个抽象类。你不能创建任何这些类的实例,因为它们都是抽象的!