![]() |
|
|
![]()
|
|
| CompWorm |
|
||||||
![]() Допеределыватель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1689 Регистрация: 6.12.2004 Где: / Репутация: нет Всего: 31 |
итак, чтоб засунуть пользовательский класс в QList надо ему переопределить конструктор по умолчанию, конструктор копирования и оператор присваивания.
в си++ я валенок и у меня это выглядит примерно так: house.h
и в основном классе я пытаюсь собрать QList: mainwindow.cpp
(гусары, сдерживаем смех!) ну и собственно на House_1.append(new house()); всё глохнет. про переопределения конструкторов я вычитал в книжке Qt 4 на примерах, и там конструктор по умолчанию описан немного по-другому:
но у меня компилятор ругается на такую форму записи. Это сообщение отредактировал(а) CompWorm - 4.11.2009, 17:18 |
||||||
|
|||||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
http://doc.qt.nokia.com/latest/qtglobal.ht...ECLARE_TYPEINFO
http://doc.qt.nokia.com/qq/qq19-containers.html http://doc.qt.nokia.com/latest/containers....able-data-types Потому, что точка с запятой там лишняя. Это сообщение отредактировал(а) SABROG - 4.11.2009, 18:14 |
|||
|
||||
| CompWorm |
|
||||
![]() Допеределыватель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1689 Регистрация: 6.12.2004 Где: / Репутация: нет Всего: 31 |
SABROG,
УРА! для работоспособности этого примера надо сделать две вещи: 1) про точку с запятой ты прав))) надо либо убрать точку с запятой за фигурными скобками: house.h
соответственно при такой записи надо убрать описание конструктора из house.cpp либо напротив, если требуется много писать в конструкторе, удобнее описать его как у меня выше и не париться, код конструктора писать обычным способом в house.cpp. 2) объявлять список QList для своего класса надо так: mainwindow.cpp
со звёздочкой после названия класса - в этом заключается китайская хитрость, в отличие от зарезервированных классов. отсюда вопрос - что эта звёздочка значит? вопрос номер два про первую ссылку. я не понял, какой режим Q_DECLARE_TYPEINFO какие даёт приемущества? какая разница, movable мой список или массив в памяти или primitive? это как-то влияет на производительность или устойчивость к сбоям? я так понял, primitive позволяет съэкономить время на обработку конструктора и деструктора, если я их не использовал... Это сообщение отредактировал(а) CompWorm - 5.11.2009, 01:08 |
||||
|
|||||
| kuzulis |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 5.9.2007 Репутация: нет Всего: 1 |
* - это значит, что QList будет хранить не сами объекты типа House, а указатели на объекты типа House |
|||
|
||||
| CompWorm |
|
|||
![]() Допеределыватель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1689 Регистрация: 6.12.2004 Где: / Репутация: нет Всего: 31 |
kuzulis,
это как раз понятно, но это не объясняет, почему тогда для зарезервированных типов правильно писать QList<date> Mydete; а не QList<date *> Mydate; ? в чем разница с пользовательским типом? понимаю, что |
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |