When a constructor for type
B is invoked
to initialize an object of a different type
D
(that is, when the constructor was inherited (
[namespace.udecl])),
initialization proceeds as if a defaulted default constructor
were used to initialize the
D object and
each base class subobject from which the constructor was inherited,
except that the
B subobject is initialized
by the inherited constructor
if the base class subobject were to be initialized
as part of the
D object (
[class.base.init])
. The invocation of the inherited constructor,
including the evaluation of any arguments,
is omitted if the
B subobject is not to be initialized
as part of the
D object
. The complete initialization is considered to be a single function call;
in particular, unless omitted,
the initialization of the inherited constructor's parameters
is sequenced before the initialization of any part of the
D object
.