我有一个抽象的基类。我从抽象基础继承了一个新类,我无法实例化对象。编译器告诉其原因是抽象类的继承
cannot allocate an object of abstract type
有什么办法来克服这一点。
我有一个抽象的基类。我从抽象基础继承了一个新类,我无法实例化对象。编译器告诉其原因是抽象类的继承
cannot allocate an object of abstract type
有什么办法来克服这一点。
不能分配抽象类型
的对象这表示你已经不是在派生类中实现所有纯virtual
功能。所以首先实现所有的纯虚函数,然后创建这个类的实例。
你不能创建类的实例,它甚至有一个单独的纯virtual
函数!
记住,纯虚函数是那些零分配,如
class sample
{
public:
virtual void f(); //virtual function
virtual void g()=0; //pure virtual function
};
这里只g()
是纯虚函数!这使得sample
为abstract class,如果派生类没有定义g()
,它也将成为一个抽象类。你不能创建任何这些类的实例,因为它们都是抽象的!
...在某些派生类中尚未被覆盖。 – 2011-02-13 18:31:27
谢谢你,@Nawaz。工作得很好。 – CHID 2011-02-13 18:33:02