【问题标题】:inheritance of abstract class抽象类的继承
【发布时间】:2018-06-26 11:08:04
【问题描述】:

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

cannot allocate an object of abstract type

有什么办法可以克服。

【问题讨论】:

    标签: c++ inheritance


    【解决方案1】:

    无法分配抽象类型的对象

    这表明您尚未在派生类中实现所有纯 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(),它也将成为一个抽象类。您不能创建任何这些类的实例,因为它们都是抽象的!

    【讨论】:

    • ...在某些派生类中没有被覆盖。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多