a (possibly cv-qualified) class type that is not
an incompletely defined class ([class.mem]
any cv-qualifiers are ignored.
A class B
base class of a class D
if it is a direct base class of
or a direct base class of one of D
's base classes.
A class is said to be (directly or
from its (direct or indirect) base
Members of a base class are also members of the derived class.
Base class members can be referred to in
expressions in the same manner as other members of the derived class,
unless their names are hidden or ambiguous ([class.member.lookup]
The scope resolution operator ::
) can be used
to refer to a direct or indirect base member explicitly,
even if it is hidden in the derived class.
A derived class can itself serve as a base class subject to access
control; see [class.access.base].
A pointer to a derived class can be
implicitly converted to a pointer to an accessible unambiguous base
An lvalue of a derived class type can be bound
to a reference to an accessible unambiguous base
— end note