A base class establishes the characteristics for a particular problem or application; a subclass may then be used to refine and add to these characteristics. Subclasses
are called derived classes because they inherit the
characteristics of the parent. This means that C++ allows a
derived class to provide new member functions not
provided, or inherited, From the base class. Applying
this principle in a general sense, all subclasses are
actually derived classes of a base class. Or, all descendants are derived classes. And, all ancestors are base
classes !