2011-06-23 92 views
0

可能重复:
Why shall I use the “using” keyword to access my base class method?为什么我们在派生类中使用使用声明?

using声明引入从基类为当我们派生一个类被隐式地完成的派生类的范围数据成员或成员函数的名称从基类,那么使用“使用声明”的效用是什么?

我想深入了解在C++类中使用声明的用法。

+1

你可以添加一个例子吗?我很少在派生类中使用“使用”。 –

+0

显示一些代码,演示您所问的内容。 –

+0

请参阅此主题:http://stackoverflow.com/questions/3544824/using-declaration-derived-class –

回答

2
struct Base() 
{ 
    void f(char); 
}; 

struct Derived: Base 
{ 
    void f(int); 
}; 

int main() 
{ 
    Derived d; 
    d.f('a'); 
} 

你认为会被称为?看起来f(int)被调用,因为名字f在Base中隐藏了名字f。所以你需要一个使用声明来启用它。

struct Derived: Base 
{ 
    using Base::f; 
    void f(int); 
}; 

现在f(char)将被调用。

这就是一个例子。 HTH

相关问题