相关疑难解决方法(0)

964
推荐指数
5
解决办法
11万
查看次数

new []是否在C++中调用默认构造函数?

当我使用new []创建我的类数组时:

int count = 10;
A *arr = new A[count];
Run Code Online (Sandbox Code Playgroud)

我看到它调用了一个默认的构造函数A count.其结果是arr已经count初始化的类型的对象A.但是,如果我使用相同的东西来构造一个int数组:

int *arr2 = new int[count];
Run Code Online (Sandbox Code Playgroud)

它没有初始化.所有值都类似于-842150451int的默认构造函数将其值赋值给0.

为什么会有这么不同的行为?默认构造函数是否仅针对内置类型调用?

c++ arrays standards new-operator

32
推荐指数
1
解决办法
2万
查看次数