nA base class constructor is always invoked before a derived class constructor in an inheritance hierarchy.
nThis means that a derived class' constructor can assume that the base class members have been initialized by the
time it is executed.
nThe body of a derived class constructor is executed last
after the base class and all
indirect base class constructors
within the hierarchy have executed.
nBut, when we have a derived class, we are not explicitly
using the base class' constructor.
Instead, the base class’ constructor
is implicitly invoked by the derived class constructor that initializes the base class members.