2011-01-12 23 views
3

C++のネストされた継承に関する質問があります。私は3つのクラス:Base,MiddleおよびTopを持っています。通常Middleから派生するとき、私は公共の継承を使用しますが、私は、しかし、それは公共の使用のためのBaseメソッドを公開する必要があります...C++のネストされた継承

はここに私の解決策Middleから私的に継承してきた一つのクラス(Top)ですが、それは大丈夫でしょうか?

class Base 
{ 
    // ... 
} 

class Middle : 
    public virtual Base 
{ 
    // ... 
} 

class Top : 
    public virtual Base, 
    private Middle 
{ 
    // ... 
} 

答えて

2

と仮定Baseは、メンバ関数fooを持っている、あなたはTopでこれを置くことができます。

public: 
    using foo; 

同じあなたが公に公開する必要がある任意の他のメンバーのために。

+0

私はこのように知っていますが、私はBaseインターフェイス全体を公開したいと思います。 – Goofy

関連する問題