Когда я использую new [] для создания массива моих классов:
int count = 10;
A *arr = new A[count];
Я вижу, что он вызывает конструктор по умолчанию A
count
раз. В результате arr
имеет count
инициализированные объекты типа A
.
Но если я использую то же самое для построения массива int:
int *arr2 = new int[count];
он не инициализирован. Все значения имеют значение -842150451
, хотя конструктор по умолчанию int присваивает значение 0
.
Почему существует такое другое поведение? Не конструктор по умолчанию не вызывается только для встроенных типов?