A difference between a destructor (of course also the constructor) and other member functions is that, if a regular member function has a body at the derived class, only the
When any object is destroyed, destructors run for all sub-objects. This includes both reuse by containment and reuse by inheritance.