Инициализация массива в Java:
int[] array = new int[10];
В то время как в С++:
int array[10];
Вопрос. Есть какая-то разница в том, что в С++ не используется оператор new и когда используется new, а когда нет?
С джавы я уже привык, что запись: int array[] - это только создания ссылки.
Аналогом джавового выражения в C++ будет int *arr = new int[10];, ибо иначе массив выделяется на стеке, а не в хипе.
Семантики выражения int array[10]; в Java нет.
В C++ более-менее value semantics, в частности, для обычного типа объявление локальной переменной автоматически означает создание на стеке локального объекта, который эта переменная и представляет. new — операция создания объекта где-то в памяти, его время жизни при этом в простейем случае никак не зависит от local scope; чтобы можно было написать var = new Class;, переменная var должна (без дополнительных телодвижений) иметь тип "указатель, совместимый с Class *".
Сборка персонального компьютера от Artline: умный выбор для современных пользователей