ciao.
ho la seguente riga di codice:
quando aggiungo la riga compila senza errori , ma mi becco questo errore del linker:codice:CPippo<CDatasetBase>* p =(CPippo<CDatasetBase>*) new CPippo<CDatasetBase>();
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.

Rispondi quotando