tglman
17-11-2007, 01:19
Ho un problemino c++ con i template .... è un pò complesso ....
Allora ho un'interfaccia
class I
{
public:
void fI()=0;
};
una seconda interfaccia che eredita del comportamento dalla prima.
class I2:public I
{
public:
void fI2()=0;
};
Ho l'implementazione della prima interfaccia.
class IImpl:public I
{
public:
void fI(){.....}
};
ho l'impementazione della seconda interfaccia che è un template....
template<typename T>
class I2Impl:public I2,public IImpl
{
public:
void fI2(){/*implementazione con template!!*/}
};
Cosi scrivendo al momento che andavo a istanziare il template il compilatore mi si arrabbiava e mi diceva che mancava l'implementazione di fi().... ma c'è .....
per farlo funzionare o duvuto fare:
template<typename T>
class I2Impl:public I2,public IImpl
{
public:
void fi(){IImpl::fi()}
void fI2(){/*implementazione con template!!*/}
};
Come mai ???
cosa c'è che mi sfugge ?? nn dovrei riscrivere la chiamata ad una funzione che gia ho!!
Allora ho un'interfaccia
class I
{
public:
void fI()=0;
};
una seconda interfaccia che eredita del comportamento dalla prima.
class I2:public I
{
public:
void fI2()=0;
};
Ho l'implementazione della prima interfaccia.
class IImpl:public I
{
public:
void fI(){.....}
};
ho l'impementazione della seconda interfaccia che è un template....
template<typename T>
class I2Impl:public I2,public IImpl
{
public:
void fI2(){/*implementazione con template!!*/}
};
Cosi scrivendo al momento che andavo a istanziare il template il compilatore mi si arrabbiava e mi diceva che mancava l'implementazione di fi().... ma c'è .....
per farlo funzionare o duvuto fare:
template<typename T>
class I2Impl:public I2,public IImpl
{
public:
void fi(){IImpl::fi()}
void fI2(){/*implementazione con template!!*/}
};
Come mai ???
cosa c'è che mi sfugge ?? nn dovrei riscrivere la chiamata ad una funzione che gia ho!!