Cuando utilizo nueva [] para crear una matriz de mis clases:¿El nuevo [] llama al constructor predeterminado en C++?
int count = 10;
A *arr = new A[count];
veo que llama a un constructor por defecto de A
count
veces. Como resultado, arr
tiene count
objetos inicializados del tipo A
. Pero si uso el mismo que para la construcción de una matriz int:
int *arr2 = new int[count];
que no se ha inicializado. Todos los valores son algo así como -842150451
aunque el constructor predeterminado de int asigna su valor a 0
.
¿Por qué hay un comportamiento tan diferente? ¿No se llama solo un constructor predeterminado para los tipos incorporados?
duplicado posible de [¿Cómo puedo hacer \ 'nueva \ [\] \' default-inicializar el array de tipos primitivos?] (Https : //stackoverflow.com/questions/2468203/how-can-i-make-new-default-initialize-the-array-of-primitive-types) – Suma