2011-01-12 1 views
3

Ich habe eine Frage über verschachtelte Vererbung in C++. Ich habe drei Klassen: Base, Middle und Top. Ich benutze öffentliche Vererbung Normalerweise, wenn sie von Middle abzuleiten, aber ich habe eine Klasse (Top), die von Middle privat erben haben, aber es sollte Base Methoden für die öffentliche Nutzung aussetzen ...Verschachtelte Vererbung in C++

Hier ist meine Lösung, ist es ok?

class Base 
{ 
    // ... 
} 

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

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

Antwort

2

Angenommen Base hat eine Memberfunktion foo, können Sie dies in Top setzen:

public: 
    using foo; 

Das gleiche gilt für alle anderen Mitglieder, die Sie öffentlich zu exponieren müssen.

+0

Ok, ich kenne diesen Weg, aber ich möchte ganze Base-Schnittstelle öffentlich machen. – Goofy