Explain C++ default constructor generation rules | Trexquant