从抽象类继承方法

Blashyrk

我是C ++的新手,我不太确定如何从基类覆盖方法。对于在发布之前未将代码翻译成英语,我深表歉意,但我认为这不会有任何不同。

我想要做的摘要是为链接列表创建一个抽象基类,然后从中派生单/双/乘链/循环列表等。

这是代码:

#ifndef __LISTA_H__
#define __LISTA_H__

class Elem;
class JulElem;

class Lista // Abstract list class
{
public:
    Lista();
    ~Lista();

    virtual void dohvatiGlavu() = 0;
    virtual void dodajNaKraj(int vred) = 0;
    virtual void dodajIza(Elem* elem, int vr) = 0;
    virtual void obrisiIza(Elem* elem) = 0;
    virtual bool prazna() = 0;
    virtual int velicina() = 0;


protected:

    class Elem
    {
    protected:
        int vred;
    };

    virtual Elem* noviElem();

private:
    Elem* glava;
};

class Jul : Lista // Singly linked list
{
public:
     void dohvatiGlavu();
     void dodajNaKraj(int vred);
     void dodajIza(Elem* elem, int vr);
     void obrisiIza(Elem* elem);
     bool prazna();
     int velicina();

private:
    class JulElem : Elem
    {
    };

    JulElem* noviElem();

};

这是我得到的错误:

error C2555: 'Jul::noviElem': overriding virtual function return type differs and is not covariant from 'Lista::noviElem'

我经常看到人们在列表元素上使用结构,但是我不确定这是否适合我的案例,因为不同类型的列表需要不同类型的结构。

谢谢

迈克·西摩

问题在于继承是私有的,因此JulElem*与不协变Elem*使用公共继承:

class JulElem : public Elem
                ^^^^^^

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

c ++-对从抽象类继承的继承的抽象方法进行解密是否存在任何性能问题?

来自分类Dev

jsf继承抽象类

来自分类Dev

从抽象类错误继承方法

来自分类Dev

泛型抽象类继承

来自分类Dev

继承抽象类,不要实现其抽象方法。是否可以?

来自分类Dev

从抽象类继承注解?

来自分类Dev

从非抽象类继承

来自分类Dev

模板继承和抽象类

来自分类Dev

抽象类继承混乱

来自分类Dev

从RecursiveTask继承的抽象类

来自分类Dev

重载抽象类中的抽象方法

来自分类Dev

删除对继承的抽象类引用的依赖

来自分类Dev

接口的多重继承(抽象类)

来自分类Dev

继承上的合成-避免抽象类

来自分类Dev

抽象类和多重继承

来自分类Dev

抽象类,重复继承,具体示例

来自分类Dev

从模板抽象类继承

来自分类Dev

继承抽象类,不要实现其抽象方法。是否有可能?

来自分类Dev

抽象类中的抽象方法

来自分类Dev

接口,抽象类和抽象类的方法

来自分类Dev

关于继承和抽象类的说明

来自分类Dev

抽象类困难:从接口继承

来自分类Dev

继承之上的组合-避免抽象类

来自分类Dev

抽象类和多重继承

来自分类Dev

抽象类多重继承

来自分类Dev

抽象类继承

来自分类Dev

从抽象类继承

来自分类Dev

抽象类孙子继承

来自分类Dev

有什么方法可以实现抽象类,它是从 C++ 中的其他抽象类多重继承的?