ciao.
ho la seguente riga di codice:
codice:
CPippo<CDatasetBase>* p =(CPippo<CDatasetBase>*) new CPippo<CDatasetBase>();
quando aggiungo la riga compila senza errori , ma mi becco questo errore del linker:
ImportFem.obj : error LNK2019: unresolved external symbol "public: __thiscall CPippo<class CDatasetBase>::CPippo<class CDatasetBase>(void)" (??0?$CPippo@VCDatasetBase@@@@QAE@XZ) referenced in function "public: void __thiscall CImportFem::ImportDs(void)" (?ImportDs@CImportFem@@QAEXXZ)
Debug/template.exe : fatal error LNK1120: 1 unresolved externals
CPippo è cosi:
codice:
template <typename T>
class CPippo : public CImporterBase
{
public:
CPippo();
T* CreateDatasetAndReturn()
{
return new T;
}
bool IsMe(){return true;};
struct SubType{
int n8;
};
bool accept(CVisitor* pVisitor) {
return true;//pVisitor->visit(this);
}
void parse(CImporterBase* pBaseParse, std::string strParse){
std::string str = strParse;
}
};
e deriva da :
class CImporterBase
{
public:
CimporterBase(){};
virtual CDatasetBase* CreateDatasetAndReturn()=0;
virtual bool IsMe()/*{return false;}*/ = 0;
virtual bool accept(CVisitor* pVisitor)/*{return false;}*/ = 0;
virtual void parse(CImporterBase* pBaseParse, std::string strParse)= 0;
};
perchè l'errore del linker?
a cosa è dovuto?
grazie.