|protected access specifier||Restricts member access to the class and derived classes|
access-specifier := protected
The protected keyword can be used within a class definition (followed by a colon) to mark subsequent member declarations as protected or before a base-class name in the class header to mark the inheritance as protected.
Protected members can be used by the class itself, derived classes, or by friends. When accessing a protected member, the access must be through this or an instance of the same class or a derived class. It cannot be through a base class.
Protected inheritance means all public members of the base class become protected in the derived class.
See private for an example.
class, private, public, struct, Chapter 6