使用默认构造函数将指针的数组指向对象

Array of pointers to objects using the default constructor

本文关键字:数组 对象 指针 默认 构造函数      更新时间:2023-10-16

我今天在阅读C 类的默认构造函数时正在思考,假设我们有类SortedArray的此代码:

class SortedArray
{
private:
    struct arrayCell
    {
        int pageID;                
        int totalNeighbors;   
    };
};

我们分配了指向此类对象的一系列指针,然后使用默认构造函数初始化指针。会发生什么?会为结构存储吗?如果这是INT的初始化?谢谢。

旧答案:我很确定为该元素创建内存,如果您编译并运行它,则在访问该内存时没有分段故障。INT将设置为默认值0。

可以在此处找到默认的构造函数信息。

编辑: 上面的答案是不正确的。该代码将无法为整数元素提供内存,因为构造是定义的,但是除非您手动创建一个,在这种情况下将创建这些整数的内存,否则不会创建构造的对象。

至于创建整数的值:

他们将不会将其初始化为有意义的任何事物,它们只会在创建之前包含内存中的内容。

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

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

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

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