Q: When do c++ constructors get invoked? Harder to tell than in java.
MyClass a; // calls noarg, behaves exactly like int/float and other builtin types
a = MyClass(); // calls noarg, assignment, and destructor.
// New object created on stack then duplicated in a’s memory location, field by field. New object is then discarded as a STACK var.
// I believe the parentheses are compulsory after the class name.
MyClass arr; // nine constructor calls. no-arg constructor needed! Note the position of .
MyClass b(a); // calls copier ….. 
C c3 = c1; // calls copier, not assignment. same as . Disabled by “explicit” keyword on the copier ctor
c2 = c1; // calls assignment, not copier
////// So far, all the variables are nonref stack vars.
MyClass * ptr; // confirmed no constructor call. The pointer is uninitialized.
MyClass * ptr = 0; // ptr starts off as uninitialized, then it is initialized to 0 i.e. null. You can see these 2 steps by debugging.