He superado un problema, creo que es muy específico.métodos virtuales y clases de plantilla
Tengo 2 clases, un B aseclass y una D clase erived (de B aseclass). B es una clase de plantilla (o plantilla de clase) y tiene un método virtual pura virtual void work(const T &dummy) = 0;
El D clase erived se supone volver a implementar esto, pero como D se deriva de B en lugar de D siendo otra clase de plantilla, el compilador me dice que las funciones virtuales y las plantillas no funcionan a la vez.
¿Alguna idea de cómo lograr lo que quiero?
estoy thankfull para cualquier pensamientos e ideas, sobre todo si ya fuiste calculado que un problema
esta clase se fija también conocido como es, no puedo editar esta sin romper base de código existente
template <typename T>
class B {
public:
...
virtual void work(const T &dummy) = 0;
..
};
int * tomar como ejemplo
class D : public B<int*>{
...
virtual void work(const int* &dummy){ /* put work code here */ }
..
};
Editar: El compilador me dice, que es void B<T>::work(const T&)
[with T = int*]
p ure virtual dentro de D
leer aquí por qué aún no funciona para mí (como intentado esto con clases de Qt Qt), deficiencia de diseño ... http://lists.trolltech.com/qt-interest/2006 -02/thread00693-0.html – drahnr
y vea aquí http://doc.trolltech.com/qq/qq15-academic.html al final tengo que usar el antiguo vacío malvado * en lugar de plantillas ... – drahnr