¿New [] llama al constructor predeterminado en C ++?
Cuando uso new [] para crear una matriz de mis clases:
int count = 10;
A *arr = new A[count];
Veo que llama a un constructor predeterminado deA
count
veces. Como resultadoarr
tienecount
objetos de tipo inicializadosA
. Pero si uso lo mismo para construir una matriz int:
int *arr2 = new int[count];
No está inicializado. Todos los valores son algo como-842150451
aunque el constructor predeterminado de int asigna su valor a0
.
¿Por qué hay un comportamiento tan diferente? ¿Un constructor predeterminado no se llama solo para los tipos integrados?