2016-03-15 5 views
-1

У меня есть класс шаблона, и я хочу создать несколько объектов этого класса с помощью нового оператора, но я не могу заставить его работать. Это, как я пытаюсь создать объектыСоздание нескольких объектов с использованием нового операнда

Penalty<GraphType, AltGraph> *penalty = new Penalty<GraphType, AltGraph>(G, AG, algTimestamp, maxNumDecisionEdges + offset)[5]; 

И ошибка я получаю

penalty.cpp:343:130: error: expected ‘,’ or ‘;’ before ‘[’ token 
    Penalty<GraphType, AltGraph> *penalty = new Penalty<GraphType, AltGraph>(G, AG, algTimestamp, maxNumDecisionEdges + offset)[5]; 

Может у пожалуйста, помогите как решить эту проблему?

Спасибо заранее

+0

https://isocpp.org/wiki/faq/ctors#arrays-call-default-ctor – malat

+0

Большое спасибо – user3078515

+1

Просто используйте 'std :: vector >'. – MSalters

ответ

0

Вы не можете вызвать конструктор один раз для 5 объектов массива.

Одним из решений может быть создание массива указателей затем вызвать новый для каждого элемента в цикле:

Penalty<GraphType, AltGraph> **penalty = new Penalty<GraphType, AltGraph>*[5]; 

for (int i = 0; i < 5; i++) 
    penalty[i] = new Penalty<GraphType, AltGraph>(G, AG, algTimestamp, maxNumDecisionEdges + offset); 
Смежные вопросы