我在一个基类中定义了一个纯虚函数 virtual int GetData() const = 0
;
在每个派生类中,我定义了一个枚举并尝试覆盖 GetData 函数返回(派生类特定枚举)值;
例如:
class Derived1 : public Base
{
public :
enum D1
{
d1_1 = 0,
d1_2 = 60,
...
d1_100
};
D1 GetData () const;
};
class Derived2 : public Base
{
public :
enum D2
{
d2_1 = 10,
d2_2 = 39,
...
d2_300
};
D2 GetData () const;
};
说我不能为所有类的所有枚举值定义相同的范围是非常重要的。上面的代码会产生编译错误:
error C2555: : overriding virtual function return type differs and is not covariant
任何建议 - 如何解决?