C++ 默认构造函数在';是空的吗? 我想知道有没有人能解释内存分配后默认的Cor是什么,它是如何初始化分配的内存的?
我不知道你问的是哪种语言,但是我会尝试回答C++和java的/P> 在C++中,它是:C++ 默认构造函数在';是空的吗? 我想知道有没有人能解释内存分配后默认的Cor是什么,它是如何初始化分配的内存的?,c++,constructor,default-constructor,C++,Constructor,Default Constructor,我不知道你问的是哪种语言,但是我会尝试回答C++和java的/P> 在C++中,它是: 将内置类型(int、float、指针等)保留为未初始化的值 调用类成员上的默认构造函数 中,我认为所有类成员都被初始化为默认值(0或null)。< /P> < P>查看(C和C++实现)。 是的,实现因语言而异。默认构造函数调用所有非静态数据成员的默认构造函数,但内置类型的数据成员除外,它们仍然处于未初始化状态 [2003:12.1/5]: 类X的默认构造函数是 可以在没有参数的情况下调用。如果没有用户声
- 将内置类型(
、int
、指针等)保留为未初始化的值float
- 调用类成员上的默认构造函数
是的,实现因语言而异。默认构造函数调用所有非静态数据成员的默认构造函数,但内置类型的数据成员除外,它们仍然处于未初始化状态
[2003:12.1/5]
:
类X的默认构造函数是
可以在没有参数的情况下调用。如果没有用户声明
类X的构造函数,默认构造函数被隐式声明
[2003:12.1/8]
:
默认构造函数被隐式调用以创建
静态或自动存储持续时间(3.7.1、3.7.2)的定义没有
初始值设定项(8.5)
所以它在Java中做了一些事情?;)@CulARIs:对,我在写C++的答案时,我看到了你对这个问题的评论,所以我在路上添加了java。我更正了答案那我需要它做什么,为什么要强制至少有一个甚至空构造函数?@ java:如果你不写它,编译器会为你定义一个C++(或者C++),所以你可以创建一个对象的实例,即使你没有编写任何构造函数。自动生成的默认构造函数做了一些事情:它默认初始化非原语类型的每个成员。例如,如果您有一个
std::string
成员,它将使用std::string()
default构造函数初始化。