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
Unless redeclared in the derived class, members of a base class are also
considered to be members of the derived class.
Members of a base class other than constructors are said to be
by the derived class.
Inherited 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.
access to a name that has been redeclared in the derived class.
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