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

问题描述 投票:4回答:4

不知道有谁能解释一下默认ctor在内存分配后做了什么,它是如何初始化分配的内存的?

c++ constructor default-constructor
4个回答
5
投票

我不知道你是用哪种语言问的问题,但我还是试着回答一下C++和Java的问题。

在C++中,它.C++是一个非常好的例子。

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

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


6
投票

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

[2003: 12.1/5]:

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

[2003: 12.1/8]:

缺省构造函数被隐式调用,用于创建没有初始化器(8.5)的静态或自动存储持续时间(3.7.1,3.7.2)的类对象。


1
投票

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

是的,不同语言的实现方式不同。

© www.soinside.com 2019 - 2024. All rights reserved.