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

时间:2011-07-21 09:08:49

标签: c++ constructor default-constructor

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

3 个答案:

答案 0 :(得分:6)

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

[2003: 12.1/5]

  

类X的默认构造函数是类X的构造函数   可以不带参数调用。如果没有用户声明   对于类X的构造函数,隐式声明了默认构造函数。

[2003: 12.1/8]

  

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

答案 1 :(得分:5)

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

在C ++中,它:

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

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

答案 2 :(得分:1)

查看this(在C和C ++实现中)。

是的,实施因语言而异。