45 Stimmen

Ruft new[] den Standardkonstruktor in C++ auf?

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?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X