2011-06-23 8 views
0

可能性の重複:
Why shall I use the “using” keyword to access my base class method?なぜ派生クラスで宣言を使用するのですか?

using宣言は、我々は、クラスを派生するとき、暗黙的に達成される派生クラスの範囲内に基本クラスからデータメンバーまたはメンバー関数の名前を紹介します基底クラスから "using declaration"を使うのはどうですか?

私は、C++のクラスで宣言を使用する方法を深く知りたいと思っています。

+1

例を追加できますか?私はめったに派生クラスで "using"を使用しません。 –

+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がベースで名前fを隠すため、f(int)が呼び出されたようです。そのためには、宣言を使用する必要があります。

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

ここでf(char)が呼び出されます。

これはその一例です。 HTH

関連する問題