C++ Zero-Initialization
The following MyTest testObj = {}; is not zero-initialization for MyTest, but is simply calling its default constructor. The cppreference page explains why (emphasis mine): As part of value-initialization sequence for non-class types and for members of value-initialized class types that have no constructors, including value initialization of elements of aggregates for which no initializers … Read more