: For an object of class type
C, each distinct occurrence of a
(non-virtual) base class
L in the class lattice of
C
corresponds one-to-one with a distinct
L subobject within the
object of type
C. Given the class
C defined above, an
object of class
C will have two subobjects of class
L as
shown in Figure
[fig:nonvirt].In such lattices, explicit qualification can be used to specify which
subobject is meant
. The body of function
C::f could refer to the
member
next of each
L subobject:
void C::f() { A::next = B::next; }
Without the
A:: or
B:: qualifiers, the definition of
C::f above would be ill-formed because of
ambiguity (
[class.member.lookup])
. —
end note