как инициализировать массив динамических объектов - PullRequest
0 голосов
/ 21 ноября 2018

что если я создаю массив объектов динамически, то как инициализировать элементы данных экземпляра.Потому что во время использования нового ключевого слова можно указать только размерность массива, а не аргументы для конструктора.

1 Ответ

0 голосов
/ 21 ноября 2018

Поскольку во время использования нового ключевого слова можно указать только размерность массива, а не аргументы для конструктора.

Каноническим способом в языке c ++ является использование std::vector:

std::vector<int> array(10, 42);
                //     ^   ^
                //     |   | the value
                //     |  the size

Другой способ инициализации std::vector с другими значениями состоит в использовании std::initializer_list, например, так:

std::vector<int> array = { 1, 2 , 3, 4, 5, 6 , 55, 0, -2, 42, -16 };

Примечание:

В c ++ вы должны использовать new и delete только для очень редких случаев в вашем собственном коде.Они действительно продвинуты, и вы должны быть на 100% уверены, что ваш вариант использования действительно требует этого.

Ручное управление памятью обычно вообще не требуется, а стандартная библиотека c ++ предоставляет

, которые освобождают вас от всехПодводные камни ручного динамического управления памятью.
Просто используйте этот материал, любой, кто требует, чтобы вы что-то делали, скорее всего, некомпетентен или был одурачен мифами о том, что использование материала из стандартной библиотеки повлечет за собой значительное снижение производительности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...