5

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

4

3 回答 3

6

默认构造函数调用所有非静态数据成员的默认构造函数,除了那些保持未初始化的内置类型。

[2003: 12.1/5]

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

[2003: 12.1/8]

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

于 2011-07-21T09:39:48.317 回答
5

我不知道您问的是哪种语言,但无论如何我都会尝试回答 C++ 和 Java

在 C++ 中,它:

  • 将内置类型(intfloat、指针等)保留为未初始化的值
  • 调用类成员的默认构造函数

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

于 2011-07-21T09:13:08.890 回答
1

看看这个(在 C 和 C++ 实现中)。

是的,实施因语言而异。

于 2011-07-21T09:25:52.733 回答