Dado el siguiente código, el compilador muestra un mensaje que indica que error: templates may not be ‘virtual’
. ¿Alguien tiene alguna sugerencia sobre cómo resolver el error?las plantillas pueden no ser "virtuales"
template < class FOO_TYPE>
class CFoo{
public:
...
template < class BAR_TYPE >
virtual void doSomething(const CBar<BAR_TYPE> &); // here's the error
...
virtual ~CFoo();
protected:
MyClass <FOO_TYPE> * m_pClass;
};
template < class FOO_TYPE >
template < class BAR_TYPE >
void CFoo<FOO_TYPE>::doSomething(const CBar<BAR_TYPE> & refBar){
...
}
no es un error, es una característica, no se puede declarar una plantilla de función que sea virtual. Necesita explorar otro enfoque, y eso depende de lo que esté tratando de hacer ... – Nim
El hecho es que el parámetro de la función es un objeto de plantilla y no puedo cambiar su declaración. – Javier
¿por qué necesita una función diferente para cada instancia de CBar? –