Re: Mixed public/private derivation?
 
* Adam Aulick:
I have a class hierarchy that looks like this:
A -- an interface
B -- an implementation of A
C -- a complex multiply-derived class, using B for its implementation of A.
I want C to expose publicly the many methods of interface A, but not 
expose the few public methods defined in B.
I could say:
class C : virtual public A, protected B
{
public:
  //implement each method of A, redirecting to B's implementation
};
But this seems unnecessarily tedious.
Is there a way to announce in the class declaration of C, that I want to 
 derive from B, while publicly exposing only A?
   struct A { virtual ~A(){} virtual void foo() = 0; };
   struct B: virtual A { void foo(){} void boo(){} };
   class C: virtual public A, virtual protected B
   {
   public:
       using B::foo;
   };
-- 
A: Because it messes up the order in which people normally read text.
Q: Why is it such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?