可能重复:
C++ 虚函数返回类型
我在这里有一个简单但令人困惑的问题。重写方法的返回值类型与基类中定义的抽象方法不同是否合法?我这样做了,编译器没有抱怨......有人可以解释一下吗?
class MyBaseClass
{
int value;
public:
virtual int getValue() = 0;
};
class MyClass : public MyBaseClass
{
double value;
public:
virtual double getValue(); // here!!! return is double, not int
};
double MyClass::getValue()
{
return this->value;
}
编译器完全接受了类似的东西(MSVC und MinGW)......谁能解释一下这在多大程度上是合法的?