O novo [] chama o construtor padrão em C ++?
Quando eu uso new [] para criar uma matriz de minhas classes:
int count = 10;
A *arr = new A[count];
Vejo que ele chama um construtor padrão deA
count
vezes. Como um resultadoarr
temcount
objetos inicializados do tipoA
. Mas se eu usar a mesma coisa para construir uma matriz int:
int *arr2 = new int[count];
não é inicializado. Todos os valores são algo como-842150451
embora o construtor padrão de int atribua seu valor a0
.
Por que existe um comportamento tão diferente? Um construtor padrão não é chamado apenas para tipos internos?