Access to Hidden Members
Even when members are hidden, they can still be used.
If they are public or protected, they can be accessed from
within a derived class member function by using the class
name and the scope resolution operator.
  base_class_name::function_name()
This gives us a means to reuse base class functionality in
the implementation of our derived classes.
If the hidden members are public, they can be accessed
from within a client application by saying
object.base_class_name::function_nme()