Class component order of initialisation
class D: A { B obj; C obj2; } What order of construction here is guaranteed ? I know that D will be constructed after A, B and C, but what I really want to know is whether A is guaranteed to be constructed before B or C, or even whether B is guaranteed to be constructed before C. I know you can have an explicit initialiser list: D(): A(), B(), C() {} but does that initialiser list determine the order of initialisation? Also, does whether or not any of the components do or don't have a default constructor? From the C++03 standard ISO/IEC 14882:2003(E) §12.6.2/5 [class.base.init]: Initialization