当使用派生类的对象访问"base"的foo()时.
#include <iostream>
class base
{
public:
void foo()
{
std::cout<<"\nHello from foo\n";
}
};
class derived : public base
{
public:
void foo(int k)
{
std::cout<<"\nHello from foo with value = "<<k<<"\n";
}
};
int main()
{
derived d;
d.foo();//error:no matching for derived::foo()
d.foo(10);
}
Run Code Online (Sandbox Code Playgroud)
如何在派生类中访问具有相同名称的方法的基类方法.生成的错误已显示.如果我不清楚,我道歉,但我觉得我已经把自己弄清楚了.提前致谢.
Jos*_*zen 12
您可以添加using base::foo到派生类:
class derived : public base
{
public:
using base::foo;
void foo(int k)
{
std::cout<<"\nHello from foo with value = "<<k<<"\n";
}
};
Run Code Online (Sandbox Code Playgroud)
编辑:这个问题的答案解释了为什么没有声明base::foo()就无法直接使用.derivedusing