可能重复:
Why shall I use the “using” keyword to access my base class method?
using
声明将基类中的数据成员或成员函数的名称引入派生类的范围,当我们从基类派生类时隐式实现,然后使用“使用”的用途是什么声明“?
我想深入了解在c ++中使用声明的使用。
答案 0 :(得分:3)
struct Base()
{
void f(char);
};
struct Derived: Base
{
void f(int);
};
int main()
{
Derived d;
d.f('a');
}
您认为会被称为哪个?看起来f(int)
被调用,因为名称f隐藏了Base中的名称f。所以你需要一个using声明才能启用它。
struct Derived: Base
{
using Base::f;
void f(int);
};
现在将调用f(char)
。
这是一个例子。 HTH