Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    [c++]template dichiarazione e vector

    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.

  2. #2
    Non hai definito il costruttore di CPippo. prova, giusto per vedere se è quello, a definirlo con un semplice:

    template <typename T>
    class CPippo : public CImporterBase
    {
    public:
    CPippo(): CImporterBase() { return; }
    ...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    grazie, era quello

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.