It depends on the order of the members m_BoundingBox
and m_Area
in the class definition.
The standard states:
12.6.2/10 In a non-delegating constructor, initialization proceeds in the following order:
— First, and only for the constructor of the
most derived class (1.8), virtual base classes are initialized in the
order they appear on a depth-first left-to-right traversal of the
directed acyclic graph of base classes, where “left-to-right” is the
order of appearance of the base classes in the derived class
base-specifier-list.
— Then, direct base classes are initialized in
declaration order as they appear in the base-specifier-list
(regardless of the order of the mem-initializers).
— Then, non-static
data members are initialized in the order they were declared in the
class definition (again regardless of the order of the
mem-initializers).
So the members are not initialized in the order in which they appear in the mem-initializer, but on their odrer in the class definition.
Here you can see an online example of what happens if the elements are in the right or in the wrong order in the class.