class A { int a; }; class B { int b; }; class C : public A, public B; void DoSomethingWithB(B *b) { DoSomethingWithA(A *a); } void f() { C x, *c = &x; DoSomethingWithB(c); }