在虚函数中返回QList

时间:2014-05-07 21:45:38

标签: c++ qt inheritance qt4 polymorphism

我在基类中有一个纯虚函数,它返回QList

enum Type { Type1, Type2, Type3, Type4, Type5 };

virtual QList<Type> childTypeRequired()  const = 0;

我想覆盖这个方法(显然因为它是纯虚拟的),所以在子类(这里称为ChildType)中我这样做:

virtual QList<Type> childTypeRequired()
{
    return QList<Type>() << Type1 << Type4;
}

然而,编译器抱怨我基本上说我没有覆盖纯虚函数。这是错误:

src/TypeModel.cxx:35:43: error: cannot allocate an object of abstract type ‘ChildType’
                     retval = new ChildType();

我还必须将此添加到ChildType类定义中以停止编译器错误,说明虚拟方法已被隐藏:

using Base::childTypeRequired;

如何正确覆盖QList<Type> childTypeRequired()

0 个答案:

没有答案