Inheritance provides a tool for code reuse by deriving one class from another and by adding features to the derived class.
Derived class objects inherit all the members of the base class and may add members.
Late binding means that the decision of which version of a member function is appropriate is decided at run-time. Virtual functions are what C++ uses to achieve late binding. Polymorphism, late binding, and virtual functions are really all the same topic.
A protected
member in the base class is directly available to a publicly derived class’s member functions.