#include <iostream>

class X {
   public:
      X() {
	 std::cout << "an object of type X gets default-constructed"
	    << std::endl;
      }
};

class Y {
   public:
      Y() {
	 std::cout << "an object of type Y gets default-constructed"
	    << std::endl;
      }
};

class Z {
   /* no explicit default constructor */
   X x;
   Y y;
};

int main() {
   Z z; /* invokes compiler-provided default constructor */
}
