Russian Qt Forum
Ноябрь 22, 2024, 23:37 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Наследование от шаблонного класса.  (Прочитано 9342 раз)
andi
Гость
« : Март 28, 2007, 11:26 »

Порыскал по разным книжкам, но не нашел такой фичи.
Допустим собрали шаблонный класс:
Код:

template <class PType>
class TParentList // шаблон класса списка указателей
{
public:
TParentList();
~TParentList();
virtual PType getItemId(int );
private:
QValueList<PType> List;
QValueListIterator<PType> it;
PType item;
virtual void addElement(const QString&);
};


Можно ли каким-либо образом сделать наследника этого шаблона (можно после конкретизации) и еще одно класса (не шаблонного).
Что-то вроде:
Код:

typedef TParentList<THard*> TPHardList;
typedef TParentList<TSoft*> TPSoftList;

class TGHList : public TPHardList , public TParent
{
};

class TGSList : public TPSoftList , public TParent
{
};



На данном момент, все компилируется, но не линкуется.
Ругается на отсутствие экземпляров:
undefined reference to `TParentList<TSoft*>::TParentList()'
итд по всем остальным функциям.

Все методы TParentList существуют (правда в виде шаблонов).

Допускаю ошибки в синтаксисе, но где и в чем... пока не понятно.
Возможно вообще так нельзя делать.
Записан
Вудруф
Гость
« Ответ #1 : Март 28, 2007, 13:13 »

Код:
template <class T> TGHList : public TParentList <T>, public TParent
{
...
};
Записан
Daemon
Гость
« Ответ #2 : Апрель 18, 2007, 14:57 »

В синтаксисе все верно. Я надеюсь твой шаблонный класс в .h файле находится?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 20.