返回类型是否影响函数覆盖?(据我所知,返回类型不是函数/方法签名的一部分)在基类中,我有一个函数,它不获取参数,返回int
并且是纯虚拟的。在每个派生类中,我为返回类型定义了一个枚举。该函数在派生类中被覆盖,即它具有相同的签名但不同的行为。问题是:重写和返回类型不是函数重写的一部分是否合法?
代码示例:
class Base
{
public:
typedef int ret;
virtual ret method() = 0;
};
class Der1
{
public:
enum ret1{
ret1_0,
ret1_1
};
ret1 method() { return ret1_1;}
};
class Der1
{
public:
enum ret2{
ret2_0,
ret2_1
};
ret1 method() { return ret2_0;}
};