#include class flying_monster { public: int i; int j; flying_monster() : i(7), j(13) {}; flying_monster(int a, int b) : i(a), j(b) { std::cout << "flying_monster!" << std::endl; }; }; class antonio { public: flying_monster a; flying_monster b; antonio() : a(), b(666, 666) { std::cout << "Here's a devilish double-monster!" << std::endl; }; antonio(int x, int y) : a(x, y), b(y, x) { std::cout << "Here's a double-monster with" << " a.i = " << a.i << " a.j = " << a.j << " b.i = " << b.i << " b.j = " << b.j << std::endl; }; }; class bozo : antonio { public: int i; bozo(int n) : antonio(n,n), i(n) { std::cout << "Here's a bozo with i = " << i << std::endl; } bozo() { std::cout << "Here's a bozo with i = " << i << " (uninitialized)" << std::endl; } }; int f() { flying_monster m1; flying_monster m2(1,2); }; int main() { bozo b1(10); bozo b2; f(); }