0

cpp 的主要座右铭之一是避免未初始化的变量。那么编译器提供的默认构造函数有什么用,因为它不初始化变量。

4

2 回答 2

2

隐式生成的默认构造函数调用所有成员和基类的默认构造函数。它们可能是隐式生成的,也可能不是隐式生成的(意思是,某个成员或成员的成员等可能有一个非隐式生成的默认构造函数,一个实际上做某事的构造函数)。

于 2013-11-08T02:44:52.437 回答
1

在某些情况下,需要默认构造函数。例如

MyClass arrayOfObjects[10];

即使您要为数组中的对象分配新值,也会在此处调用默认构造函数。或者派生类 ctor 没有显式调用父构造函数。甚至是一个简单的变量声明:

MyClass x; // calls default constructor
...
x = ..;
于 2013-11-08T02:45:43.817 回答