Я хочу создать динамический массив foo, число элементов которого равно x. Аргументы y и z должны быть переданы конструктору элемента foo. Я надеялся, что сделать что-то похожее на:Инициализация динамического массива
Foo* bar = new Foo(y, z)[x];
Однако который произвел следующую ошибку компилятора:
error: expected `;' before '[' token
Так после разговора с опытным другом, он дал мне это, что он признался, был ленивым способ сделать это, но он работает. Мне было интересно, есть ли лучший способ?
Foo* bar = (Foo*) new int[x];
for (int i = 0; i < x; i++) {
bar[i] = Foo(y, z);
}
Вы и ваш друг должны получить [хорошую книгу] (http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list), чтобы получить хорошую базу понимания. Я имею в виду, что второй блок кода просто ошибочен, зачем выделять 'int', а затем бросать' foo'? Это почти наверняка неопределенное поведение. – GManNickG