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

时间:2012-11-02 02:00:07

标签: c++ object pointers

我在阅读有关C ++中类的默认构造函数的时候正在思考,假设我们有类SortedArray的代码:

class SortedArray
{

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

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

3 个答案:

答案 0 :(得分:2)

OLD ANSWER:我很确定为该元素创建了内存,如果编译并运行它,则在访问该内存时没有分段错误。整数将设置为默认值0。

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

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

关于创建的整数的值:

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

答案 1 :(得分:2)

如果你在谈论SortedArray*类型的指针,那么没有。

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

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

答案 2 :(得分:0)

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