Constructors in Hierarchies
The initialization list causes the base class constructor to
be invoked with the correct arguments!
The order of the arguments for the base class is very
important. They must be listed in the same order as the
base class constructor expects.
 If we had not included the base class constructor in the
initialization list of the derived class, then the default base
class constructor would be invoked.
If no default base class constructor exists, then a compile
error results.