默认构造函数有什么用?

时间:2013-11-08 02:41:43

标签: c++ constructor default-constructor

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

2 个答案:

答案 0 :(得分:2)

隐式生成的默认构造函数调用所有成员和基类的默认构造函数。它们可能隐含地生成也可能不生成(意思是,某些成员或成员的成员等可能具有非隐式生成的默认构造函数,实际执行某些操作)。

答案 1 :(得分:1)

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

MyClass arrayOfObjects[10];

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

MyClass x; // calls default constructor
...
x = ..;