【发布时间】:2013-02-25 09:55:07
【问题描述】:
返回类型对函数重写有影响吗? (据我所知,返回类型不是函数/方法签名的一部分)
在一个基类中,我有一个没有参数的函数,它返回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;}
};
【问题讨论】:
-
@LihO - 谢谢你的留言。这是一个错字
标签: c++ overriding return-type