Порыскал по разным книжкам, но не нашел такой фичи.
Допустим собрали шаблонный класс:
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 существуют (правда в виде шаблонов).
Допускаю ошибки в синтаксисе, но где и в чем... пока не понятно.
Возможно вообще так нельзя делать.