Ошибка QVector.push_back - PullRequest
4 голосов
/ 24 сентября 2011

ошибка в

QVector<LibraryRecord> Library;
Library.push_back(LibraryRecord(DateOfIssue, ReturnDate, FIO,tTekct,FName,TText));

сообщение об ошибке:

 no matching function for call to ‘LibraryRecord::LibraryRecord()’

почему?Присутствует конструктор

//constructor
LibraryRecord::LibraryRecord(QString pDateOfIssue,
                             QString pReturnDate,
                             QString FIO,
                             QString tTekct,
                             QString fName,
                                 QString TTextt)
{..}

Подскажите, как это исправить?Заранее спасибо!

Ответы [ 2 ]

11 голосов
/ 24 сентября 2011

В отличие от контейнеров стандартной библиотеки C ++ (например, std::vector), контейнеры Qt требуют, чтобы тип значения был конструируемым по умолчанию.

То есть ваш тип LibraryRecord также должен иметь конструктор по умолчанию (показанный вами конструктор, требующий аргументов, не является конструктором по умолчанию).

1 голос
/ 24 сентября 2011

Ваш класс должен быть присваиваемым . Это, вероятно, нет.

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