我在阅读有关C ++中类的默认构造函数的时候正在思考,假设我们有类SortedArray的代码:
class SortedArray
{
private:
struct arrayCell
{
int pageID;
int totalNeighbors;
};
};
我们指定一个指向此类对象的指针数组,然后使用默认构造函数初始化指针。会发生什么?是否会为结构存储内存?如果是int将被初始化为什么?感谢。
答案 0 :(得分:2)
OLD ANSWER:我很确定为该元素创建了内存,如果编译并运行它,则在访问该内存时没有分段错误。整数将设置为默认值0。
可以找到默认构造函数信息here。
编辑: 上述答案不正确。代码不会为整数元素提供内存,因为结构已定义但不会创建使用结构的对象,除非您手动创建一个对象,在这种情况下将创建这些整数的内存。
关于创建的整数的值:
它们不会被初始化为任何有意义的东西,它们只会在创建之前包含内存中的内容。
答案 1 :(得分:2)
如果你在谈论SortedArray*
类型的指针,那么没有。
SortedArray
是一个具有私有嵌套类型的空类。
如果您分配嵌套类型SortedArray::arrayCell
的实例,那么整数将被默认初始化(该值未指定)。
答案 2 :(得分:0)
我很确定它会为你在数组中初始化的每个对象分配内存,并将int设置为默认值(0)。