为什么我们在派生类中使用Using Declaration?

时间:2011-06-23 08:36:00

标签: c++

  

可能重复:
  Why shall I use the “using” keyword to access my base class method?

using声明将基类中的数据成员或成员函数的名称引入派生类的范围,当我们从基类派生类时隐式实现,然后使用“使用”的用途是什么声明“?

我想深入了解在c ++中使用声明的使用。

1 个答案:

答案 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