operators overloading order of construction
struct initialization order of construction
initialization variables variable-scope scope order of construction global variables
initialization class references constructors pointers order of construction
initialization static order of construction static variables