A reference to a class can be converted to a reference to a base class in the following cases:
The specified base class is accessible (as defined in Pointers to Classes).
The conversion is unambiguous. (See Multiple Base Classes for more information about ambiguous base-class references.)
The result of the conversion is a pointer to the subobject that represents the base class.