Wenn ich new[] verwende, um ein Array mit meinen Klassen zu erstellen:
int count = 10;
A *arr = new A[count];
Ich sehe, dass es einen Standardkonstruktor von A
count
Zeiten. Infolgedessen arr
tiene count
initialisierte Objekte des Typs A
. Aber wenn ich die gleiche Sache verwenden, um ein int-Array zu konstruieren:
int *arr2 = new int[count];
es ist nicht initialisiert. Alle Werte sind etwa so -842150451
obwohl der Standardkonstruktor von int seinen Wert an 0
.
Warum gibt es so unterschiedliche Verhaltensweisen? Wird ein Standardkonstruktor nicht nur für eingebaute Typen aufgerufen?