class A // An interface { public: virtual ~A(); virtual void whatever_A()=0; }; class B // Another interface { public: virtual ~B(); virtual void whatever_B()=0; }; class C: public A, public B { public: C(); virtual ~C(); virtual void whatever_A(); virtual void whatever_B(); };