【发布时间】:2018-06-26 11:08:04
【问题描述】:
我有一个抽象的基类。我从无法实例化对象的抽象基础继承了一个新类。编译器告诉的原因是
cannot allocate an object of abstract type
有什么办法可以克服。
【问题讨论】:
标签: c++ inheritance
我有一个抽象的基类。我从无法实例化对象的抽象基础继承了一个新类。编译器告诉的原因是
cannot allocate an object of abstract type
有什么办法可以克服。
【问题讨论】:
标签: c++ inheritance
无法分配抽象类型的对象
这表明您尚未在派生类中实现所有纯 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(),它也将成为一个抽象类。您不能创建任何这些类的实例,因为它们都是抽象的!
【讨论】: