// prms-id: 3570 extern "C" int printf(const char *, ...); struct A { void print() {printf("A");}; }; struct B : A { typedef A superB; void print() {superB::print(); printf("B");}; }; struct C : B { typedef B superC; void print() {superC::print(); printf("C");}; }; int main () { A a; B b; C c; a.print(); printf("\n"); b.print(); printf("\n"); c.print(); printf("\n"); return 0; }