c++ - 使用默认构造函数指向对象的指针数组

标签 c++ object pointers

我今天在阅读 C++ 类的默认构造函数时在想,假设我们有类 SortedArray 的这段代码:

class SortedArray
{

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

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

最佳答案

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

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

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

至于创建的整数的值:

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

关于c++ - 使用默认构造函数指向对象的指针数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13188240/

相关文章:

c++ - "Bresenham' s》圆圈算法填充题

C++函数返回没有某些字段的对象

C++ 如何让 constexpr 函数对于任何类型的参数都是 constexpr

c++ - 将 vs printf 放在以下代码中?

c++ - 试图将文本文件中的数据存储到对象 vector 中

python - python中类、对象和方法的混淆

javascript - 将多级对象文字插入数组时,值困惑

c - 在 C 中增加类型转换的 void 指针

c - 为什么我的结构和数组不起作用?

c - 在 c 中取消引用指针的不同值