当默认构造函数为空时它会做什么?

cho*_*yyo 4 c++ constructor default-constructor

我想知道是否有人可以解释在分配内存后默认ctor的作用,它如何初始化分配的内存?

Lig*_*ica 6

默认构造函数调用所有非静态数据成员的默认构造函数,但内置类型的成员除外,它们保持未初始化状态.

[2003: 12.1/5]:

类X的默认构造函数是类X的构造函数,可以在没有参数的情况下调用.如果类X没有用户声明的构造函数,则隐式声明默认构造函数.

[2003: 12.1/8]:

默认构造函数被隐式调用,以创建没有初始化程序(8.5)定义的静态或自动存储持续时间(3.7.1,3.7.2)的类对象.


Lou*_*uen 5

我不知道你问了哪个languange,但我会尝试回答C++和Java

在C++中,它:

  • 离开内置类型(int,float,指针等),以一个未初始化的值
  • 调用类成员的默认构造函数

在Java中,我认为所有类成员都被初始化为其默认值(0或NULL).

  • @Louen:实际上,在C++中,自动生成的默认构造函数执行某些操作:它默认初始化非基本类型的每个成员.例如,如果你有一个`std :: string`成员,它将使用`std :: string()`默认ctor进行初始化. (4认同)