可能重复:
C++:隐藏规则背后的基本原理
假设我有一个代码:
class A
{
public:
void f(int s) {}
};
class B:public A
{
public:
void f() {}
};
int main()
{ B ob;
ob.f(4);
}
然后在这种情况下,编译器会生成一个错误“没有匹配函数调用'B::f(int)'”但是类B已经继承了A作为公共所以B必须具有函数“void f(int s)”。不知道为什么编译器会在这里产生错误?