The direct base class subobjects of 
C,
in the order of their declaration in the 
base-specifier-list of 
C,
followed by the non-static data members of 
C,
in the order of their declaration in the 
member-specification of 
C,
form a list of subobjects
.  In that list, any subobject of array type is recursively expanded
to the sequence of its elements, in the order of increasing subscript
.  Let 
xi be an lvalue denoting the 
ith element
in the expanded list of subobjects for an object 
x
(of length 
n),
where 
xi is
formed by a sequence of
derived-to-base conversions (
[over.best.ics]),
class member access expressions (
[expr.ref]), and
array subscript expressions (
[expr.sub]) applied to 
x.