base class provides an interface that is inherited by derived classes. However, in some cases you need to extend, or even alter, the base class's interface in a derived class. For example, if you're overloading a member function of the base class in a derived class or readjusting a member's access.
How do you overload a member function across a class hierarchy? How do you override the access type of a base class's member in a derived class?
Use a using-declaration to control a member's access type and to overload member functions across a class hierarchy.