Classes can be derived using any of the three visibility mode:
1. In a public base class, public and protected members of the base class remain public and protected members of the derived class.
2. In a protected base class, public and protected members of the base class are protected members of the derived class.
3. In a private base class, public and protected members of the base class become private members of the derived class.