Quando uso nuovo [] per creare un array dei miei corsi:Il nuovo [] chiama il costruttore predefinito in C++?
int count = 10;
A *arr = new A[count];
vedo che chiama un costruttore di default di A
count
volte. Di conseguenza arr
ha oggetti inizializzati count
di tipo A
. Ma se io uso la stessa cosa per la costruzione di un array int:
int *arr2 = new int[count];
non è inizializzato. Tutti i valori sono qualcosa come -842150451
sebbene il costruttore predefinito di int assegni il suo valore a 0
.
Perché c'è un comportamento così diverso? Un costruttore predefinito non viene chiamato solo per i tipi predefiniti?
Eventuali duplicati di [Come posso fare \ 'nuova \ [\] \' default-inizializzare l'array di tipi primitivi?] (Https : //stackoverflow.com/questions/2468203/how-can-i-make-new-default-initialize-the-array-of-primitive-types) – Suma