Инициализация массива в 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 *
".
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Уже второй день пытаюсь установить библиотеку boost, никак не получается
Помогите исправить ошибку в программе по подсчету колмонет
У меня стала возникать ошибка : Exception at 0x7fff0ce8e878, code: 0xc0000005: read access violation at: 0xffffffffffffffff, flags=0x0 (first chance)
Выполняю вот это заданиеНеобходимо написать итератор на лист векторов