struct A { public: int x; }; struct B : A { float y; float foo(); }; struct C { C(int i = 10); C(const C&); C &operator=(C&); ~C(); }; enum E { b = 1 };