QLinkedList<> и шаблон. |
Здравствуйте, гость ( Вход | Регистрация )
QLinkedList<> и шаблон. |
trdm |
26.7.2008, 16:14
Сообщение
#1
|
Дмитрий Трошин Группа: Участник Сообщений: 575 Регистрация: 12.1.2008 Пользователь №: 68 Спасибо сказали: 21 раз(а) Репутация: 6 |
Есть определенная проблема. Не могу понять как решить.
Суть. Планируется несколько классов, которые будут работать с нумерованными структурами. У нумерованной структуры есть общий атрибут: int number; ///< номер итема Итем также может хранить и другие данные: size, invisible и т.п. характеристики разные, одинаковым является только логика: поиск итема >> есть процедура поиска базирующаяся на сохранении значения итератора и поиск осуществляется в зависимости от номера итема, к началу while(_iter != _list->begin()) или к концу while(_iter != _list->eng()) решил оформить это классом-шаблоном:
но такой фокус не проходит. Когда обращаешся к Т* item; item = *_itSave; item->num(); компилер матерится.... не знаю, что делать... либо дублировать алгоритм поиска/позиционирования во всех классах, четко указывая имя типа: QLinkedList<type*> _list; QLinkedList<type*>::iterator _itSave; или еще как-то. Вобщем-то код дублировать не очень хочется.... |
|
|
Litkevich Yuriy |
26.7.2008, 16:36
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
может это связанно с метообъектной информацией? она неможет быть в шаблонном классе, см. статью Academic Solutions to Academic Problems
|
|
|
trdm |
26.7.2008, 17:07
Сообщение
#3
|
Дмитрий Трошин Группа: Участник Сообщений: 575 Регистрация: 12.1.2008 Пользователь №: 68 Спасибо сказали: 21 раз(а) Репутация: 6 |
мда, а может я забыл правило, которая рекомендует помещать шаблонные классы в один модуль.
в не собирающемся коде я помнится разбил определение и реализацию по *.h и *. cpp соответственно. А сейчас вспомнил и сработало О_о.... Но за полезную информацию спасибо ПС. правда с инглишем слабовато, но суть понял Сообщение отредактировал trdm - 26.7.2008, 17:11 |
|
|
Текстовая версия | Сейчас: 22.12.2024, 18:17 |