Чтобы использовать
Card c = Card("Question?", 2, { {"answer 1", 1}, {"answer 2", 2}, {"answer 3", 3} } );
, вам нужно изменить конструктор
Card(QString nQuestion, qint8 nSolutionId, Answer[] );
, чтобы он принимал QVector<Answer>
вместо Answer[]
. Это выглядело бы как
Card(QString nQuestion, qint8 nSolutionId, QVector<Answer> nAnswers );
//...
Card(QString nQuestion, qint8 nSolutionId, QVector<Answer> nAnswers ) :
question(nQuestion),
answers(nAnswers),
solutionId(nSolutionId)
{}
Причина, по которой это работает, заключается в том, что QVector<T>
имеет конструктор, который принимает std::initializer_list<T>
, поэтому
{ {"answer 1", 1}, {"answer 2", 2}, {"answer 3", 3} }
будет преобразован в std::initializer_list<Answer>
виспользоваться для инициализации answers
.