crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> QVector<T>, если T не имеет конструктора по-умолчанию, заполнение элементов
AD
  опции профиля:
сообщение 7.7.2009, 18:10
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Не могу понять, как поправить следующую ошибку:
class M {
QVector<LOGRECORD> log;

M(): log(0, LOGRECORD(<какие-то параметры>))
{}
};

И так сделал везде, где встречается QVector<LOGRECORD>. Или же сделал так:
void f(const QVector<LOGRECORD>& other)
QVector<LOGRECORD> p(other);

Структура LOGRECORD не имеет (теперь) конструктора по-умолчанию! Я вроде бы заменил все вектора указанным способом. При этом выдаются следующие ошибки:
Цитата
1>Compiling...
1>VerticalGraphics.cpp
1>tlv.cpp
1>c:\qt\4.3.2\include\qtcore\../../src/corelib/tools/qvector.h(410) : error C2512: 'LOGRECORD' : no appropriate default constructor available
1> c:\qt\4.3.2\include\qtcore\../../src/corelib/tools/qvector.h(396) : while compiling class template member function 'void QVector<T>::realloc(int,int)'
1> with
1> [
1> T=LOGRECORD
1> ]
1> c:\qt\4.3.2\include\qtcore\../../src/corelib/tools/qvector.h(371) : while compiling class template member function 'QVector<T>::QVector(int,const T &)'
1> with
1> [
1> T=LOGRECORD
1> ]
1> d:\projects\src\transaslogviewer\ParamDescr.h(39) : see reference to class template instantiation 'QVector<T>' being compiled
1> with
1> [
1> T=LOGRECORD
1> ]
1>c:\qt\4.3.2\include\qtcore\../../src/corelib/tools/qvector.h(451) : error C2512: 'LOGRECORD' : no appropriate default constructor available
1>Reader.cpp
1>c:\qt\4.3.2\include\qtcore\../../src/corelib/tools/qvector.h(410) : error C2512: 'LOGRECORD' : no appropriate default constructor available
1> c:\qt\4.3.2\include\qtcore\../../src/corelib/tools/qvector.h(396) : while compiling class template member function 'void QVector<T>::realloc(int,int)'
1> with
1> [
1> T=LOGRECORD
1> ]
1> c:\qt\4.3.2\include\qtcore\../../src/corelib/tools/qvector.h(371) : while compiling class template member function 'QVector<T>::QVector(int,const T &)'
1> with
1> [
1> T=LOGRECORD
1> ]
1> d:\projects\src\transaslogviewer\ParamDescr.h(39) : see reference to class template instantiation 'QVector<T>' being compiled
1> with
1> [
1> T=LOGRECORD
1> ]
1>c:\qt\4.3.2\include\qtcore\../../src/corelib/tools/qvector.h(451) : error C2512: 'LOGRECORD' : no appropriate default constructor available
1>Generating Code...
1>Build log was saved at "file://d:\Projects\Win32\Obj\Debug\TransasLogViewer\BuildLog.htm"
1>TLV - 4 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Видно, что они ведут в файл qvector.h! Как их поправить? Сталкивались с такой проблемой?

Сообщение отредактировал AD - 7.7.2009, 18:20
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 14.1.2025, 20:49