我在基类中有一个纯虚函数,它返回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()
?