<分区>
考虑以下代码:
class Base
{
public:
void Fun()
{
}
};
class Derived : public Base
{
public:
void Fun(int x)
{
}
};
int main()
{
Derived d;
d.Fun(5);
d.Fun(); // Compilation error
}
在编译时,编译器提示没有采用零参数的 Fun() 版本。为什么会这样?如果基类和派生类中的函数签名匹配,我可以理解编译器隐藏基类版本,但是如果它们采用不同的参数/不同的参数,为什么编译器无法解析这两个函数。参数?