Ruft new [] den Standardkonstruktor in C ++ auf?
Wenn ich new [] verwende, um ein Array meiner Klassen zu erstellen:
int count = 10;
A *arr = new A[count];
Ich sehe, dass es einen Standardkonstruktor von @ aufruA
count
mal. Als Ergebnisarr
hatcount
initialisierte Objekte vom TypA
. Aber wenn ich das gleiche verwende, um ein int-Array zu konstruieren:
int *arr2 = new int[count];
it ist nicht initialisiert. Alle Werte sind so etwas wie-842150451
obwohl der Standardkonstruktor von int seinen Wert @ zuwei0
.
Warum gibt es so unterschiedliches Verhalten? Wird ein Standardkonstruktor nicht nur für integrierte Typen aufgerufen?