A
class-or-decltype shall denote
a (possibly cv-qualified) class type that is not
an incompletely defined class (
[class.mem]);
any cv-qualifiers are ignored
. A class
B is a
base class of a class
D if it is a direct base class of
D or a direct base class of one of
D's base classes
. A class is said to be (directly or
indirectly)
derived from its (direct or indirect) base
classes
. 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
inherited
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])
. [
Note 2:
The scope resolution operator
:: (
[expr.prim.id.qual]) can be used
to refer to a direct or indirect base member explicitly
. This allows
access to a name that has been redeclared 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
class (
[conv.ptr])
. An lvalue of a derived class type can be bound
to a reference to an accessible unambiguous base
class (
[dcl.init.ref])
. —
end note]