使用默认构造函数指向对象的指针数组 我今天在阅读C++中类的默认构造函数时,想说我们有SoTyDAREX类的代码: class SortedArray { private: struct arrayCell { int pageID; int totalNeighbors; }; };

使用默认构造函数指向对象的指针数组 我今天在阅读C++中类的默认构造函数时,想说我们有SoTyDAREX类的代码: class SortedArray { private: struct arrayCell { int pageID; int totalNeighbors; }; };,c++,object,pointers,C++,Object,Pointers,我们分配一个指向此类对象的指针数组,然后使用默认构造函数初始化指针。会发生什么?会为结构存储内存吗?如果是,int将被初始化为什么?谢谢。我很确定它会为数组中初始化的每个对象分配内存,ints设置为默认值(0)。我很确定它会为数组中初始化的每个对象分配内存,ints设置为默认值(0).旧答案:我很确定为该元素创建了内存,如果您编译并运行它,在访问该内存时不会出现分段错误。ints将设置为默认值0 可以找到默认构造函数信息 编辑:上述答案不正确。代码不会为整数元素提供内存,因为定义了结构,但不会创

我们分配一个指向此类对象的指针数组,然后使用默认构造函数初始化指针。会发生什么?会为结构存储内存吗?如果是,int将被初始化为什么?谢谢。

我很确定它会为数组中初始化的每个对象分配内存,ints设置为默认值(0)。

我很确定它会为数组中初始化的每个对象分配内存,ints设置为默认值(0).

旧答案:我很确定为该元素创建了内存,如果您编译并运行它,在访问该内存时不会出现分段错误。ints将设置为默认值0

可以找到默认构造函数信息

编辑:上述答案不正确。代码不会为整数元素提供内存,因为定义了结构,但不会创建使用该结构的对象,除非手动创建一个,在这种情况下,将为这些整数创建内存

对于创建的整数的值:


它们不会被初始化为任何有意义的东西,它们只会包含它们创建之前在内存中的内容

旧答案:我很确定内存是为该元素创建的,如果您编译并运行它,在访问该内存时不会出现分段错误。ints将设置为默认值0

可以找到默认构造函数信息

编辑:上述答案不正确。代码不会为整数元素提供内存,因为定义了结构,但不会创建使用该结构的对象,除非手动创建一个,在这种情况下,将为这些整数创建内存

对于创建的整数的值:


它们不会被初始化为任何有意义的东西,它们只会包含它们创建之前在内存中的内容

如果你说的是类型为
SortedArray*
的指针,那么不是

SortedArray
是一个带有私有嵌套类型的空类


如果您分配嵌套类型的实例
SortedArray::arrayCell
,则整数将默认初始化(该值未指定)。

如果您谈论的是
SortedArray*
类型的指针,则否

SortedArray
是一个带有私有嵌套类型的空类


如果您分配嵌套类型的实例
SortedArray::arrayCell
,则整数将默认初始化(值未指定)。

接受的答案是错误的,
int
s将不会初始化,除非您(零值)-初始化它们。@SethCarnegie您完全正确,事实上,有几件事是不正确的。我相应地更改了我的答案。接受的答案是错误的,
int
s将不会被初始化,除非您(零|值)-初始化它们。@SethCarnegie您完全正确,事实上有几件事是不正确的。我相应地改变了我的答案。