cpp的主要座右铭之一是避免未初始化的变量。那么编译器提供的默认构造函数有什么用,因为它不会初始化变量。
答案 0 :(得分:2)
隐式生成的默认构造函数调用所有成员和基类的默认构造函数。它们可能隐含地生成也可能不生成(意思是,某些成员或成员的成员等可能具有非隐式生成的默认构造函数,实际执行某些操作)。
答案 1 :(得分:1)
在某些情况下,需要使用默认构造函数。例如
MyClass arrayOfObjects[10];
这里调用默认构造函数,即使您要为数组中的对象分配新值也是如此。或者是一个没有显式调用父构造函数的派生类ctor。甚至是变量的简单声明:
MyClass x; // calls default constructor
...
x = ..;